在窗体上画一个命令按钮Command1和3个标签控件(Lable1、Lable2和Lable3),编写如下代码:
Public x As Integer
Private Sub Command1_Click()
Static y As Integer
Dim z As Integer
n=5
x=x+n
y=y+n
z=z+n
Lable1.Caption=x
Lable1.Caption=y
Lable1.Caption=z
End Sub
运行程序,连续3次单击命令按钮后,则3个标签中显示的内容分别为______。
参考答案:15 15 5
解析: 在VBA中变量的作用域有3个层次:在模块过程内部用Dim或Private定义的变量为局部变量;在标准模块的变量定义区域用Dim或Private定义的变量为模块变量;在标准模块的变量定义区域用Public定义的变量为全局变量。这种变量不同于局部变量,每次调用过程的时候不会重新声明和初始化该变量,变量中仍然保留上次调用结束时的值。在本题中,第一次调用x的值变为5,y的值变为5,z的值也变为5;在第二次调用时,x这个全局变量变为5+5=10,y这个静态变量的值变为5+5=10,z这个局部变量的值被重新定义只能变为5;以此类推,第三次调用后,x的值变为15,y的值变为15,z的值是5。