在VBA

时间:2018-11-20 20:34:37

标签: excel vba excel-vba excel-2010

我想在编译时有条件地设置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

1 个答案:

答案 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

您可以找到更多文档herepre-defined constants上的页面

更新:正如共产国际正确指出的那样,我的状态记忆仅常量并不完全正确,请参见section 5.6.16.2 of the language spec