#If...Then...#Else 指令
有条件地编译选定的 Visual Basic 代码块。
语法
#If表达式Then
statements
[ #ElseIfexpression-nThen
[ elseifstatements ]]
[ #Else
[ elsestatements ]]
#End If
#If...Then...#Else 指令语法具有以下几个部分:
部分 | 说明 |
---|---|
expression | 必需。 仅由一个或多个条件编译器常量、文本和运算符组成的任何表达式,其计算结果为 True 或 False。 |
statements | 必需。 当关联表达式为 True 时所计算的 Visual Basic 程序行或编译器指令。 |
expression-n | 可选。 仅由一个或多个条件编译器常量、文本和运算符组成的任何表达式,其计算结果为 True 或 False。 |
elseifstatements | 可选。 expression-n 为“True”时评估的一个或多个程序行或编译器指令。 |
elsestatements | 可选。 以前没有表达式 或expression-n 为“True”时评估的一个或多个程序行或编译器指令。 |
备注
#If...Then...#Else 指令的行为与 If...Then...Else 语句相同,只不过没有 #If、#Else、#ElseIf 和 #End If 指令的单行形式;即其他代码都不能显示在与任何指令相同的行上。
条件编译通常用于为不同平台编译相同的程序。 它还用于防止调试代码显示在可执行文件中。 在条件编译期间排除的代码将在最终的可执行文件中完全省略,因此它不影响大小或性能。
无论计算结果如何,都会计算所有表达式。 因此,必须定义表达式中使用的所有常量 — 任何未定义的常量均计算为空。
注意
Option Compare 语句不影响 #If 和 #ElseIf 语句中的表达式。 条件编译器指令中的表达式始终使用 Option Compare Text 进行计算。
示例
此示例在 #If...Then...#Else 结构中引用条件编译器常量来确定是否编译某些语句。
' If Mac evaluates as true, do the statements following the #If.
#If Mac Then
'. Place exclusively Mac statements here.
'.
'.
' Otherwise, if it is a 32-bit Windows program, do this:
#ElseIf Win32 Then
'. Place exclusively 32-bit Windows statements here.
'.
'.
' Otherwise, if it is neither, do this:
#Else
'. Place other platform statements here.
'.
'.
#End If
另请参阅
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。