首先,我不是程序员。我只是试图制作一个文档,其中“发票”编号会随着每次打印文档时上升的文档而增加。我在网上找到了一个宏代码,但我一直在寻找
编译错误
我会附上一张快照片,说明即将拍摄的照片一直闪烁在高光下。
我有什么问题吗?
答案 0 :(得分:4)
展开braX's answer ...
这是分配Function
或Property 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
视为Subroutine
。 Subroutines
不返回值。
如果您希望例程返回值,请将Sub
更改为Function
(位于顶部)
如果您不希望它返回任何内容,请选择其他变量名称而不是SerialNumber
,或更改Subroutine
的名称。
您不能使用与Subroutine
的名称相同的变量名称。