ExcelVBAで2D配列の配列を使用しています。機能があります...
Public Function constructStack(vbr() As Variant, hr As Integer) As stack
スタックは私が作ったクラスです。別の関数があり、そこからconstructStackを呼び出しています。ここに呼び出しがあります:
Set stacks(i) = stack(i).constructStack(vbr(i), i)
vbrはたまたま2D配列の配列です。vbr(i)が型バリアントの単一の2D配列を参照しているので、「型の不一致:配列またはユーザー定義型が必要です」というコンパイルエラーが発生する理由がわかりません。
まるでコンパイラがvbr()が24個の2D配列で満たされることを認識していないかのようです。そのため、コンパイルエラーが発生します。これが私が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とまったく同じ型(2D配列の配列)を返します。誰かがこの問題について何か意見を持っているなら、それは大いにありがたいです。