【发布时间】:2019-11-26 07:11:08
【问题描述】:
我已经定义了 5 个数组。
一个具有未定义尺寸来存储其他 4 个:
Dim outputArr() As Variant
其余如下:
Dim Arr1(5, 0), Arr2(12, 0), Arr3(5, 0), Arr4(12, 0) As Variant
我将后者的元素分配如下:
Arr1(0, 0) = [{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}]
Arr1(1, 0) = [{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}]
Arr1(2, 0) = [{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}]
Arr1(3, 0) = [{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}]
Arr1(4, 0) = [{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}]
Arr1(5, 0) = [{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}]
上述适用于每个数组。
当我使用时
ReDim outputArray(3, 0)
outputArr = [{Arr1, Arr2, Arr3, Arr4}]
我收到 'Type Mismatch' 错误。
当我不使用Evaluate 并且不使用ReDim 进行分配时
outputArr = Array(Arr1, Arr2, Arr3, Arr4)
我可以在 Watch 窗口中看到元素及其值,但是当我尝试使用 outputArr 的元素填充定义的命名范围时,我得到一个空输出
Range("nRange1name").Value = outputArr(0)
Range("nRange2name").Value = outputArr(1)
Range("nRange3name").Value = outputArr(2)
Range("nRange4name").Value = outputArr(3)
我该如何解决这个问题?
【问题讨论】:
-
“我收到一个错误。” - 你得到什么错误?
-
@TimWilliams 类型不匹配错误。
-
有什么想法@TimWilliams?
-
让我们看看完整的代码。
-
@RyanWildry,恐怕就是这样。我唯一遗漏的是其他 3 个数组
Arr2, Arr3, Arr4的分配和一个相当长的 Select Case,它在将值分配给数组元素之前将它们分配给父数组outputArr。
标签: arrays excel vba multidimensional-array