我想在编译时有条件地设置const变量的值。我以为我可以使用如下vba编译器指令#If #Else等来实现此目的,但到目前为止仍未成功:
#If Environ("username") = "myusername" Then
Public Const ErrorHandling As Boolean = False
#Else
Public Const ErrorHandling As Boolean = True
#End If
当我运行这段代码时,我收到一个错误消息,提示Environ变量未定义。
这样的事情还能实现吗?还是只需要将'ErrorHandling'变量设置为Public(而不是Const),并在初始化代码时将其设置?
在此先感谢,
cjk
答案 0 :(得分:4)
您只能在条件if语句中使用常量。您可以在here中说明的VBAProject属性中或在您的代码中进行设置。
Sub TestIt()
#Const Errorhandling = False
#If Errorhandling Then
Debug.Print "Error on"
#Else
Debug.Print "Error off"
#End If
End Sub
您可以找到更多文档here和pre-defined constants上的页面
更新:正如共产国际正确指出的那样,我的状态记忆仅常量并不完全正确,请参见section 5.6.16.2 of the language spec