【发布时间】:2016-05-10 23:36:53
【问题描述】:
我有一个包含许多变体的 VBA 类。这些变体用于保存 Y x Z 大小的数组,但它们是可选输入(因此变体通常永远不会被使用或初始化)。
同一类中的函数调用这些变体中的每一个来执行计算。但是,我需要它来跳过空白的变体。当我尝试使用 IsNull(xyz) 和 IsEmpty(xyz) 时,两者都返回 false。看xyz上的手表,有:
Expression: xyz
Value:
Type: Variant/Variant()
Context: className
价值下完全空白。
如果这些东西是空的,有什么想法可以测试/返回布尔值吗?或者甚至是布尔值,如果它们已满,那也可以。
谢谢
编辑:我应该补充一点,IsMissing 完全崩溃了 excel...
【问题讨论】:
-
您可以声明没有维度的数组,也可以显式检查每个元素。
-
我从不声明变量。您是否建议我将其声明为 Variant()? [多维数组包含多种数据类型]
-
我从不声明变量。我个人认为这不是一个好习惯,它可以在编写时节省一些时间,但代码可能更难调试。跨度>
-
我将其声明为 Variant()。但我没有给数组等指定大小
-
@keynesiancross 在这种情况下,您可以在
LBOUND(variable)上测试“超出范围”错误,或者,也许,结合ISARRAY和LBOUND寻找True和Error 9