Excel VBA编程条件编译语句
使用条件编译语句,即使用条件编译指令,它是一种特殊的表达式。使用条件编译指令应首先使用#Const指令声明一个逻辑常量,然后在程序中使用#If…Then…#Else指令检查常量,根据常量的值决定应该编译哪部分代码。
1.#Const语句
该指令用来定义VBA的条件编译常数。
语法:#Const constname = expression
其中,#Const 编译指令的语法具有以下几个部分:
●constname 表示一个常数;其参数的名称要遵守变量命名的约定。
●expression 表示文字、其他的条件编译常数或包含除了Is以外的算术或逻辑运算符的任意组合。例如,下面的实例使用#Const指令声明条件式编译器常数,以便在#If…#Else…#End If构造中使用。
#Const DebugVersion = 1 'DebugVersion常数在#If块中计为True。
在条件编译的使用过程中,应注意以下几点内容:
●条件编译常数在其出现的模块中总是Private。不可能利用#Const指令建立Public编译常数。
●在expression中只能使用编译常数及文字。使用一个用Const定义的标准常数,或者使用一个未
定义的常数,都会导致错误发生。反之,用#Const关键字定义的常数也只能用于条件编译。
●不管条件编译常数在程序中的位置如何,都总是在模块级别中进行计算。
2.#If…Then…#Else语句
#If…Then…#Else指令用于条件编译已选择的VBA代码块中。
语法:
#If expression Then
statements
[#ElseIf expression-n Then
[elseifstatements]]
[#Else
[elsestatements]]
#End If
其中,#If…Then…#Else 指令的语法具有以下几个部分的功能:
●expression 必要参数,表示包含一个或多个条件编译常数、文字与运算符的任何表达式,其值
为True或False。
●statements 必要参数。表示VBA程序行或编译指令,如果关联的表达式为True,则运行程序。
●expression-n 可选参数。表示由一或多个条件编译常数、文字和运算符组成的任何一个表达式,
其值为True或False。
●Elseifstatements 可选参数。表示一个或多个程序行或编译命令,如果expression-n 为True,则
运行程序。
●elsestatements 可选参数。表示一个或多个程序行或编译命令,如果以前的expression或
expression-n中没有一个为True,则运行程序。
例如,使用#If…Then…#Else构造中引用条件式编译器常数,来决定编译哪部分语句。
' 如果Mac常数为true,则编译#If后面的语句。
#If Mac Then
' 否则,如果是32位窗口程序,则编译这个语句