了解变量生存期

变量保留其值的时间被称为变量的生存期。 变量的值在其生存期结束后可能会更改,但会保留某个值。 当变量丢失范围时,它不再具有值。

过程开始运行时,会初始化所有变量。 数值变量初始化为零,可变长度字符串初始化为零长度字符串 (“”) ,固定长度字符串用 ASCII 字符代码 0 或 Chr ( 0 ) 表示的字符填充。 Variant 变量初始化为用户定义类型变量的每个元素都像单独变量一样初始化。

声明 对象变量时,空间在内存中保留,但其值将设置为 Nothing ,直到使用 Set 语句为其分配对象引用。

如果变量的值在代码运行期间未更改,它会保留其初始化的值,直到丢失范围。

使用 Dim 语句声明的过程级变量会保留一个值,直到该过程完成运行。 如果该过程调用其他过程,当这些过程运行时,该变量也会保留其值。

如果使用 Static 关键字声明过程级变量,则只要代码在任何 模块中运行,该变量就保留其值。 当所有代码都运行完毕时,变量将丢失其范围和值。 其生存期与模块级别变量相同。

模块级别变量与静态变量不同。 在标准模块类模块中,它保留其值,直到代码停止运行。 在类模块中,只要类的实例存在,变量便会保留其值。 模块级别变量将一直消耗内存资源,直到重置其值,因此请仅在必要时使用这些变量。

如果在 SubFunction 语句之前包含 Static 关键字,则过程中所有过程级变量的值会在调用之间保留。

另请参阅

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。