VBA - 编译错误:预期的函数或变量

时间:2018-01-19 19:14:52

标签: vba compiler-errors

首先,我不是程序员。我只是试图制作一个文档,其中“发票”编号会随着每次打印文档时上升的文档而增加。我在网上找到了一个宏代码,但我一直在寻找

  

编译错误

我会附上一张快照片,说明即将拍摄的照片一直闪烁在高光下。

enter image description here

我有什么问题吗?

2 个答案:

答案 0 :(得分:4)

展开braX's answer ...

这是分配FunctionProperty Get成员的返回值的语法 - 即,您要分配给过程的标识符:

Public Function GetTotallyRandomNumber() As Long
    GetTotallyRandomNumber = 4
End Function

似乎你的意思是拥有一个名为SerialNumber的局部变量,但是VBA已经知道这个标识符是名为Sub的{​​{1}}过程的名称,并且因为SerialNumber程序不返回任何东西,它不能合法地分配这样的。

在非法分配之前,在过程的范围内声明一个局部变量:

Sub

然后你的代码会起作用......但是我不建议使用与程序完全相同的名称。

我的建议是命名局部变量Dim SerialNumber As String SerialNumber = System.PrivateProfileString(...) ,并重命名SerialNumber过程,使其名称以动词开头。程序做某事,他们是行动:找到一个有意义的名称来描述它的作用,然后继续。

命名很难 - 如果你找不到一个描述你的程序的简单名称,那可能是因为它做了太多事情。将其分解为更小,更集中的程序。

Sub

答案 1 :(得分:2)

您正在将Function视为SubroutineSubroutines不返回值。

如果您希望例程返回值,请将Sub更改为Function(位于顶部)

如果您不希望它返回任何内容,请选择其他变量名称而不是SerialNumber,或更改Subroutine的名称。

您不能使用与Subroutine的名称相同的变量名称。