作者:绿色风
分类:
时间:2022-08-17
浏览:119
楼主 wise |
Q:VBA 中变量的作用域和生存期是怎么样理解的? A:具体请看下面解释: excel VBA 中变量的作用域和生存期 1、变量的作用域定义可以使用变量的过程; 2、变量的生存期定义变量保存所赋的值多长时间。 例子1(变量生存期):
- Sub TT()
- Dim i
- i = i + 1
- MsgBox i
- End Sub
每次运行TT过程,得到值为1.因为变量i仅仅保留在内存中,一直到该过程结束。当遇到了End sub语句时,i所使用的内存就会被释放。下次再运行TT过程时,i被重新创建,默认为0值。 如果i的生存期是在该过程的运行期间,通过在static语句声明i,可以增加i的生存期。
- Sub BB()
- Static i
- i = i + 1
- MsgBox i
- End Sub
注意BB过程,第一次运行值是1,第二次运行值显示为2,第三次运行值为3,不停地给保留。 作用域的演示:
- Sub 作用域1()
- Static i
- i = i + 1
- MsgBox i
- End Sub
- Sub 作用域2()
- Static i
- i = i + 5
- MsgBox i
- End Sub
过程作用域1中的i变量和过程作用域2的i变量不是相同的变量,每次执行的时候,作用域1是增加1,而作用域2是增加5。这两个过程是独立的,不相互影响的。 在一个过程声明的任何变量都是有限定于该过程的作用域。在一个过程中声明的变量称为过程级变量。 但是,如果是下面这个的例子话,变量是一样的。 Option Explicit Dim i
- Sub 作用域1()
- i = i + 1
- MsgBox i
- End Sub
- Sub 作用域2()
- i = i + 5
- MsgBox i
- End Sub
这两个例子的变量都是一样的,称为模块级变量。其生存周期在整个工作簿打开的时间。 |
2楼 亡者天下 |
不错,过来学习一下! |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一