在前一节中已讲过,VBA程序中使用变量和常量时可以显示声明变量、常量,也可以隐式声明变量与常。本节针对显示声明常量与变量进行讲解。
9.1 变量的分类与作用域
变量可以有多种分类方式,例如按变量的值的生命可以分为动态变量与静态变量;按作用级别可以分为过程级变量、模块级变量和工作程级变量;而按数据类型分类则有数值时变量、文本型变量、对象变量、布尔变量、数组变量等等。
9.1.1 动态变量与静态变量
动态变量是指过程执行时可以改变其值,但过程执行完毕后会自动释放的变量。过程中利用Dim、Publ和Private声明的变量都是动态变量
静态变量是过程执行时可以改变其值,但过程执行完毕后仍然保留其值的变量。只要通常Excel未关闭,静态变量的值不会自动释放。声明静态变量使用Static语句。
例用以下实例可以让读者对静态变量和动态变量有一定的认识:
1.在VBE界面中单击菜单【插入】\【模块】;
2.在模块中输入以下代码:
__________________________________________________________
Sub 动态与静态()
Dim A As Byte '这是动态变量
Static B As Byte '这是静态变量
A = A + 1 '累加变量的值
B = B + 1
Debug.Print "A等于" & A '输出变量的值
Debug.Print "B等于" & B
End Sub
__________________________________________________________
3.使用快捷键【l+G】调出立即窗口;
4.将光标定位于任意行的代码中,按下快捷键【F5】执行程序,在立即窗口中可以看到以下结果:
图9.1 区分静态变量与动态变量
从上图中可以看出,动态变量永远都是1,而静态变量的值却一直在累加。