Word VBA 中 IsEmpty 对刚声明的动态数组始终返回False的原因咨询
VBA中IsEmpty对未初始化动态数组返回False的原因
IsEmpty是VBA专为单个Variant类型变量设计的校验函数,仅当变量未被赋值、值为Empty这一特殊初始状态时才会返回True,本身就不支持用于数组类型的判空。- 你声明的
Dim ThisArray() As Variant属于动态数组变量,哪怕还没有通过ReDim分配存储单元,它的类型本质是数组,不存在Empty状态,因此IsEmpty对它的返回值永远是False,属于VBA的预期设计表现。 - 参考对比:如果声明
Dim TestVar As Variant(无数组标记),未赋值时IsEmpty(TestVar)返回True;一旦将该变量赋值为任意数组(哪怕是未分配空间的动态数组),IsEmpty(TestVar)就会变为False。
你提供的测试代码返回False是完全符合VBA语法规则的:
Sub TestSub() Dim ThisArray() As Variant MsgBox IsEmpty(ThisArray) End Sub
内容的提问来源于stack exchange,提问作者Stuart L
相关产品推荐
相关产品推荐

