您好,欢迎来到宝玛科技网。
搜索
您的当前位置:首页Excel VBA编程 条件编译语句

Excel VBA编程 条件编译语句

来源:宝玛科技网
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位窗口程序,则编译这个语句 #ElseIf Win32 Then

' 再否则,则编译以下语句 #Else

Win16 #End If

在#If…Then…#Else指令的使用过程中,应注意以下几点内容:

#If…Then…#Else指令的作用与If…Then…Else语句相同,其差异在于#If、#Else、#ElseIf,及#End If指令没有单独成行的形式,也就是说,在指令所在的那一行,不能有其他代码出现。 

条件编译通常用来编译不同平台上的同一个程序。也可以用来避免调试程序代码出现在可执行程序中。条件编译时被排除的程序代码在最后的可执行文件中被完全略去,所以不会对程序的大小或功能有任何影响。 

无论结果如何,都要计算所有表达式。所以,在表达式中用到的所有常数都必须加以定义,任何未定义的常数都会被当作Empty来计算取值。 

Option Compare语句不会影响#If及#ElseIf语句中的表达式。条件编译指令中的表达式总是用Option Compare Text计算值。其中,Option Compare语句用于声明字符串比较时所用的缺省比较方法。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- baomayou.com 版权所有 赣ICP备2024042794号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务