VBA 在编译时更改代码行为

示例

该#Const指令用于定义自定义预处理程序常量。以后可以使用它们#If来控制要编译和执行的代码块。

#Const DEBUGMODE = 1

#If DEBUGMODE Then
    Const filepath As String = "C:\Users\UserName\Path\To\File.txt"
#Else
    Const filepath As String = "\\server\share\path\to\file.txt"
#End If

这导致将值filepath设置为"C:\Users\UserName\Path\To\File.txt"。删除该#Const行或将其更改为#Const DEBUGMODE = 0会导致将filepath其设置为"\\server\share\path\to\file.txt"。

#常量范围

该#Const指令仅对单个代码文件(模块或类)有效。必须为要在其中使用自定义常量的每个文件声明它。或者,您可以#Const通过转至工具>> [您的项目名称]项目属性来为项目全局声明。这将打开项目属性对话框,我们将在其中输入常量声明。在“条件编译参数”框中,键入[constName] = [value]。您可以输入多个常数,方法是使用冒号将它们分开,例如[constName1] = [value1] : [constName2] = [value2]。

预定义常量

一些编译常量已经预先定义。哪个版本取决于运行VBA的Office版本的位数。请注意,Vba7与Office 2010一起引入,以支持64位版本的Office。

不变16位32位64位
Vba6如果Vba6
Vba7如果Vba7真正
Win16的真正
Win32的真正真正
Win64的真正
苹果电脑如果是Mac如果是Mac

请注意,Win64 / Win32是指Office版本,而不是Windows版本。例如,即使OS是Windows的64位版本,在32位Office中Win32 = TRUE。