【发布时间】:2015-09-25 21:53:30
【问题描述】:
我在 Excel 宏 (VBA) 中有一个案例,我想对一个数组进行标注,其中维数和每个维的边界是在运行时确定的。我让用户通过为每个选项类型创建一列并填写下面的可能性来指定一系列组合选项。列数和选项数在运行时通过检查工作表来确定。
一些代码需要遍历每个组合(从每一列中选择一个),我想将结果存储在一个多维数组中。
维度的数量可能在 2 到 6 之间,所以如果必须的话,我总是可以退回到一堆 if else 块,但感觉应该有更好的方法。
我在想如果我可以在运行时将Redim 语句构造为字符串并执行该字符串就可以做到,但这似乎是不可能的。
有没有办法动态地Redim 使用不同数量的维度?
【问题讨论】:
-
您是否需要多达六个维度,或者您只需要一个具有 1 到 6 的第二个等级的二维数组?即 redim myArr(1 to 99, 1 to 6) 或 redim myArr(1 to 9, 1 to 9, 1 to 9, 1 to 9, 1 to 9, 1 to 9)
-
"在运行时将 Redim 语句构造为字符串并执行该字符串" : 这种委托类型的执行在 VBA 中是不可能的。 “变维数”:所以你想把单个D数组改成多D然后来回改还是继续改多D?
标签: arrays vba excel multidimensional-array