我对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