2

Redim Preserve配列が欲しいのですが、「添え字が範囲外です」というエラーが発生し続けます。最後の寸法のサイズしか変更できないことを知っています。それはまさに私がしていることです。ここで何が問題になっていますか?配列のタイプはですVariant

BmMatrix = Sheets("BENCH").Range("a60", ActiveSheet.Range("a60").End(xlDown).End(xlToRight))
'totaal gewicht per subdeel in array wegschrijven
Dim aBmMatrix()
aBmMatrix = BmMatrix
rij = UBound(BmMatrix, 1)
kol = UBound(BmMatrix, 2) + 1
ReDim Preserve aBmMatrix(rij, kol)
TotGewKol = UBound(aBmMatrix, 2)
For i = 2 To UBound(BmMatrix, 1)
    g = 0 'g wordt totaal gewicht van land bv
    If BmMatrix(i, bm_kolom) <> "x" Then
        For j = 2 To UBound(bmexnul, 1)
            If bmexnul(j, weightkolom) = BmMatrix(i, bm_kolom) Then g = g + bmexnul(j, 10)
        Next j
    End If
    aBmMatrix(i, TotGewKol) = g
    aBmMatrix(1, TotGewKol) = "Totaal gewicht" 'titel kolom
Next i
4

2 に答える 2

4

aBmMatrix範囲のプロパティを使用して配列を割り当てるため、返される配列には各次元Valueの下限があります。1

後で下限を明示的に指定せずに再調整すると、再調整は各次元にデフォルトの下限 ( ) を割り当てようとします0

下限を明示的に指定する必要があります。

ReDim Preserve aBmMatrix(lbound(aBmMatrix,1) to rij, lbound(aBmMatrix,2) to kol)
于 2012-12-27T14:04:06.110 に答える