了解变量生存期
变量保留其值的时间被称为变量的生存期。 变量的值在其生存期结束后可能会更改,但会保留某个值。 当变量丢失范围时,它不再具有值。
在过程开始运行时,会初始化所有变量。 数值变量初始化为零,可变长度字符串初始化为零长度字符串 (“”) ,固定长度字符串用 ASCII 字符代码 0 或 Chr ( 0 ) 表示的字符填充。 Variant 变量初始化为空。 用户定义类型变量的每个元素都像单独变量一样初始化。
声明 对象变量时,空间在内存中保留,但其值将设置为 Nothing ,直到使用 Set 语句为其分配对象引用。
如果变量的值在代码运行期间未更改,它会保留其初始化的值,直到丢失范围。
使用 Dim 语句声明的过程级变量会保留一个值,直到该过程完成运行。 如果该过程调用其他过程,当这些过程运行时,该变量也会保留其值。
如果使用 Static 关键字声明过程级变量,则只要代码在任何 模块中运行,该变量就保留其值。 当所有代码都运行完毕时,变量将丢失其范围和值。 其生存期与模块级别变量相同。
模块级别变量与静态变量不同。 在标准模块或类模块中,它保留其值,直到代码停止运行。 在类模块中,只要类的实例存在,变量便会保留其值。 模块级别变量将一直消耗内存资源,直到重置其值,因此请仅在必要时使用这些变量。
如果在 Sub 或 Function 语句之前包含 Static 关键字,则过程中所有过程级变量的值会在调用之间保留。
另请参阅
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。