vba中全局变量和局部变量的重要解析
1、首先我们打开一个工作样表作为例子。
2、使用alt+f11组合快捷键打开vba编辑器,插入一个新的代码,在代码编辑框中输入以下代码:Option ExplicitPublic i As IntegerSub Test1()Dim s As IntegerMsgBox iMsgBox si = i + 1End SubSub Test2() MsgBox i MsgBox sEnd 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。
阅读量:90
阅读量:44
阅读量:35
阅读量:46
阅读量:49