我正在使用 Excel VBA 中的一组二维数组。我有一个功能...
Public Function constructStack(vbr() As Variant, hr As Integer) As stack
stack 是我创建的一个类。我有另一个函数,我从中调用constructStack。这是电话:
Set stacks(i) = stack(i).constructStack(vbr(i), i)
vbr 恰好是一个二维数组。看到 vbr(i) 将引用类型变体的单个二维数组,我很困惑为什么我得到“类型不匹配:预期的数组或用户定义的类型”编译错误。
就好像编译器没有意识到 vbr() 将被 24 个二维数组填充,这就是它给我编译错误的原因。这是我如何调暗 vbr:
Dim vbr(1 To 24) As Variant
在声明 vbr 之后,我最终运行了这个 for 循环,它为 vbr 的每个元素分配了一个 2D 数组......
vb = GetVBRSorted
For j = 1 To 24
For i = 2 To 2000
If (vb(i, 1)(j) <> "") Then
lastFilleds(j) = i
End If
Next
Next
For j = 1 To 24
ReDim vbrTemp(1 To lastFilleds(j) - 1, 1 To 5)
For i = 2 To lastFilleds(j)
For k = 1 To 5
vbrTemp(i - 1, k) = vb(i, k)(j)
Next
Next
vbr(j) = vbrTemp
Next
GetVBRSorted 返回与 vbr 完全相同的类型 - 二维数组的数组。如果有人对此问题有任何意见,将不胜感激。