excel – VBA编译错误

我对VBA的经验很少,而且我上一次使用它的时间是几年前.

继承我的VBA:

Function MacIDGen(total, current)
If total - current = 0 Then
    current -1
Else
    current 1
End If
    Macro1 (current)
End Function

Sub Macro1(cur)
    Sheets("Donations").Cells(I2).Value = cur & "Test"
End Sub

这是它自己的模块,根本没有其他代码.

所以我有一个调用MacIDGen()的单元格.它传递了MacID两个其他单元格值.每当执行时出现错误,“编译错误:预期的子,函数或属性”并突出显示函数方法签名.

我不知道它为什么在这里踢它,我猜它是因为我要么错过了一个重要的步骤,要么就是如何在这种情况下不能有功能或其他一些问题.

编辑
作为一个额外的信息,我在Excel中创建这些电子表格,作为随机数据生成表导入到drupal站点.我遇到了一个问题,如果不使用循环就无法解决(我也不能硬编码迭代次数),哪些公式不能.

最佳答案 关于编译错误,你得到的是因为你忘了在当前-1和当前1中使用=符号

就像我提到的,有很多错误,但主要的错误是你不能使用UDF写入另一个单元格.如果将该函数分解为函数或子函数,则无关紧要.你根本无法写入任何其他单元格.您将在使用该功能的单元格中获得#Value.

当您想要返回某些内容时使用函数.既然你将它用作UDF(用户定义的函数),它应该返回一些东西并返回到那个特定的单元格.

如果要写入调用函数的同一单元格,则将代码更改为

Function MacIDGen(total, current)     
    If total - current = 0 Then
        current = -1
    Else
        current = 1
    End If

    MacIDGen = current & "Test"
End Function
点赞