vba中全局变量和局部变量的重要解析
1、首先我们打开一个工作样表作为例子。

2、使用alt+f11组合快捷键打开vba编辑器,插入一个新的代码,在代码编辑框中输入以下代码:
Option Explicit
Public i As Integer
Sub Test1()
Dim s As Integer
MsgBox i
MsgBox s
i = i + 1
End Sub
Sub Test2()
MsgBox i
MsgBox s
End Sub

3、我们运行一下这两个过程,会发现对同一个变量得到的结果却是不一样的。运行test1,我们能够得到正确的过程结果,但是运行test2我们会得到错误变量未定义的结果。

4、分析一下代码,我们做了一个全局变量i,所以在test1和test2中,i变量都是定义过的,可以使用。而s则只在test1里做了局部变量声明,所以test1能够正常运行得到结果。

5、如果我们图简洁,我们直接将变量声明这个语句删除掉,TEST2过程就可以正常的工作,但是这种方法在运行上会造成变量的混乱,尤其是在复杂代码中,未定义的变量会给不同的进程中的代码阅读造成混乱。因为未给s赋值也未定义,所以s实际上是个空值。

6、如果给s下了个定义,虽然msgbox不会显示具体的数值,但是s的类型会被vba所确认,其类型会被正确的显示出来。

7、经过以上步骤的解说,可以看出变量声明的重要性,合理的确定变量是全局还是局部,是非常重要的选择。当然更好的办法是将代码封装为不同的模块,并相互调用,可以避免变量的混乱。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:171
阅读量:96
阅读量:146
阅读量:153
阅读量:53