#If...Then...#Else 指令

有条件地编译选定的 Visual Basic 代码块。

语法

#If表达式Then
statements
[ #ElseIfexpression-nThen
[ elseifstatements ]]
[ #Else
[ elsestatements ]]
#End If

#If...Then...#Else 指令语法具有以下几个部分:

部分 说明
expression 必需。 仅由一个或多个条件编译器常量、文本和运算符组成的任何表达式,其计算结果为 TrueFalse
statements 必需。 当关联表达式为 True 时所计算的 Visual Basic 程序行或编译器指令。
expression-n 可选。 仅由一个或多个条件编译器常量、文本和运算符组成的任何表达式,其计算结果为 TrueFalse
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 支持和反馈,获取有关如何接收支持和提供反馈的指南。