面试题答案
一键面试局部变量
- 作用域范围:在声明它的过程(如 Sub 过程或 Function 过程)内部有效。过程结束后,变量就不再存在。
- 生命周期特点:当过程开始执行时,局部变量被创建并分配内存,过程执行完毕,局部变量被释放,其所占用的内存被回收。
- 声明示例:
Sub MySub()
Dim localVar As Integer '声明一个局部整型变量
localVar = 10
Debug.Print localVar
End Sub
模块级变量
- 作用域范围:在声明它的模块(如窗体模块或标准模块)内的所有过程都可以访问,但在模块外部不可见。
- 生命周期特点:当模块被加载到内存时,模块级变量被创建,只要模块在内存中,变量就一直存在,直到模块从内存中卸载。
- 声明示例:
- 在窗体模块的通用声明部分声明(以 VB6 为例,在代码窗口顶部声明):
Option Explicit
Dim moduleVar As Integer '声明模块级变量
Private Sub Command1_Click()
moduleVar = 20
Debug.Print moduleVar
End Sub
- 在标准模块中声明:
Option Explicit
Public moduleVar As Integer '在标准模块中声明模块级变量,此模块内所有过程可访问
Sub AnotherSub()
moduleVar = 30
Debug.Print moduleVar
End Sub
全局变量
- 作用域范围:在整个应用程序的所有模块中都可以访问。
- 生命周期特点:应用程序启动时创建,应用程序结束时才被销毁,在整个应用程序运行期间一直存在。
- 声明示例:
在标准模块中使用
Public
关键字声明:
Option Explicit
Public globalVar As Integer '声明全局变量
在其他模块中即可访问该全局变量:
Sub SomeSub()
globalVar = 40
Debug.Print globalVar
End Sub