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行或将其更改为#ConstDEBUGMODE=0会导致将filepath其设置为"\\server\share\path\to\file.txt"。
#常量范围
该#Const指令仅对单个代码文件(模块或类)有效。必须为要在其中使用自定义常量的每个文件声明它。或者,您可以#Const通过转至工具>>[您的项目名称]项目属性来为项目全局声明。这将打开项目属性对话框,我们将在其中输入常量声明。在“条件编译参数”框中,键入[constName]=[value]。您可以输入多个常数,方法是使用冒号将它们分开,例如[constName1]=[value1]:[constName2]=[value2]。
预定义常量
一些编译常量已经预先定义。哪个版本取决于运行VBA的Office版本的位数。请注意,Vba7与Office2010一起引入,以支持64位版本的Office。
请注意,Win64/Win32是指Office版本,而不是Windows版本。例如,即使OS是Windows的64位版本,在32位Office中Win32=TRUE。