Excel VBA编程 变量
变量可以作为程序中数据的临时存放场所,它是可以随之发生变化的值。在VBA代码中,可以只使用一个变量,也可以使用多个变量,变量中可以存放单词、数值、日期以及属性。
1.声明变量
声明变量有两个作用,一是指定变量的数据类型,二是指定变量的适用范围(应用程序中可以引用变量的使用域)。VBA应用程序不要求在过程中使用变量以前明确地进行声明。如果使用一个没有明确声明的变量,VBA会默认地将它声明为Variant数据类型。
虽然默认的声明很方便,但它可能会在程序代码中导致严重的错误。下面来介绍使用Dim语句来声明变量的方法。其中,使用Dim语句不仅可以声明变量,而且可以为其分配存储空间。
下面是一个声明My Name为String(字符串)型变量的代码:
Dim MyrName As String
声明之后,就可以给它赋值:
MyName="张小海"
赋值之后,还可以再改变它的值:
MyName= "张远"
另外,还可以在同一行内声明多个变量。例如:
Dim AnotherVar,Choice As BoolearL,BirthDate As Date
其中,AnotherVar的类型为Variant,因为声明时没有指定它的类型。Choice的类型为布尔型;BirthDate的类型为日期型。
提 示 | 变量和常量有很多相同之处,但他们有一个重要的不同点:赋予变量的值能在程序运行时改变。变量可以在不同时刻有不同的值。 |
2.变量的作用域和存活期
变量有效的范围被称为变量的作用域。而变量被存储的时间被称为变量的存储期或生存期。如果按变量的作用域来分类的话,变量可以分为局部变量和全局变量;如果按变量的存储期来分类的话,变量可以分为外部变量、静态变量、自动变量、寄存器变量。
一般来说,变量的作用域有3个等级,它们的等级名称、关键字和使用范围如表4-3所示。
表4-3 变量的作用域
等级 | 关键字 | 使用范围 |
项目等级(Global Level) | Public | 适用于所有模块 |
模块级变量(Module Level) | Dim,Private | 只适用于本模块的所有过程 |
过程级变量(Local Level) | Dim,Static | 只在本过程中有效 |
下面举例说明上述3种等级的声明格式:
'项目级变量,即全局变量GlobalAB为整型
Public GlobalAB As integer
'模块级变量ModBC为字符串类型
Private ModBC As String
或 Dim ModBC As Stringvba 字符串函数
'变量LocA为过程级的日期型变量
Static Loca As Date
或 Dim Loca As Date
接下来将分别介绍上面3种等级变量的存活期,即变量所点内存空间在何时分配,何时释放。
● Public声明的全局变量
对于使用Public声明的全局变量,它可以在所有程序或者函数中使用,其存活期随着程序的执行而产生,程序的结束而结束。
● Private或者Dim声明的模块级变量
这两个变量存活期将随着模块的产生而存在,模块的释放而消失。
● Static或者Dim声明的局部变量
这两个变量的存活期伴随程序或者函数的执行而生成,程序或函数的结束而消失。因为局部变量具有这样的特点,就不应该把要保存的数据放在局部变量中,否则,数据将随程序或函数的结束而丢失。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论