Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3430|回复: 3

[分享] 【烟花原创】VBA零基础之第148篇 变量(三)

[复制链接]
发表于 2014-4-9 23:38 | 显示全部楼层 |阅读模式
本帖最后由 hwc2ycy 于 2014-4-9 23:43 编辑

3.Static
使用范围:过程
在整个代码运行期间都能保留使用 Static 语句声明的变量的值,直至该模块复位或重新启动。
上面两个过程每个连续运行5次,demo1运行时消息框中的数字会一直递增(每次加1),而demo2运行时消息框始终显示1

总结:
DimPrivate关键字在定义模块级私有变量时是一样的。
在定义变量时,PublicPrivate关键字只能用于定义模块级变量,而Static只能用于过程内部定义静态变量。
1Dim可以用于过程内部和外部,但不管用于过程内外,使用Dim语句定义的变量均为私有,无法在模块外使用;
2PublicPrivate只能在过程外使用,用来定义模块级变量,区别是Public定义的模块级变量对外界可见,可以被本模块和其他模块使用。而Private定义的模块级变量,只能用于
本模块,不能被其他模块调用。
3Static只能在过程内部定义静态变量,由Static定义的变量只能用于本过程,不能被本模块的其他模块调用,更不能被其他模块调用。

二、变量的生命周期
变量保留其值的这段时间,称为生存周期。变量的值可能在整个生存周期都在改变,但它仍然保留着一些值。当变量失去了范围之后,它也就不再保存着任一个值。

当过程开始运行时,所有的变量都会被初始化。一个数值变量会初始化成 0,变长字符串被初始化成零长度的字符串,而定长字符串会被填满 ASCII 字符码 0 所表示的字符或是 Chr(0)Variant变量会被初始化成 Empty。用户定义类型中每一个元素变量会被当成个别变量来做初始化。

当声明一个对象变量时,内存中虽有保留空间,但它的值会被设置成 Nothing,直到利用 Set 语句对它指定一个对象引用。

如果在代码的运行期间,变量的值一直没有改变,则它会继续保有它的初始值直到它丢失范围为止。

Dim 语句声明过程的级别变量将保留一个值,直到此过程结束为止。如果该过程调用其它的过程,则在这些过程正在运行的同时,属于调用者过程的变量也保留它的值。

如果过程的级别变量是用 Static 关键字来声明的,则只要代码正在任何模块中运行访问该变量后仍会保留它的值。它的存活期和模块级别的变量是一样的。

之前有提到代码重新设置会把模块级变量和静态变量的值复位,另外还有个End语句也会如此。

评分

参与人数 1 +15 收起 理由
xuyouxm + 15 赞一个!

查看全部评分

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2014-4-9 23:43 | 显示全部楼层
学习

点评

抓住一只夜猫子。  发表于 2014-4-9 23:57
回复

使用道具 举报

发表于 2014-4-27 08:53 | 显示全部楼层
回复

使用道具 举报

发表于 2014-6-18 15:12 | 显示全部楼层

评分

参与人数 1 -66 金币 -66 收起 理由
过儿 -66 -66 大量灌水是不好的,下次不要再这样了

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-2 09:53 , Processed in 0.414466 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表