gpt4 book ai didi

arrays - Redim Preserve 给出 'subscript out of range'

转载 作者:行者123 更新时间:2023-12-04 05:17:39 31 4
gpt4 key购买 nike

我要 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

最佳答案

因为你分配 aBmMatrix使用 Value 的数组范围的属性,返回的数组的下限为 1对于每个维度。

当您稍后在未明确提供下限的情况下对其进行重新调整时,重新调整会尝试为每个维度分配默认下限,即 0 .

您需要明确提供下限:

ReDim Preserve aBmMatrix(lbound(aBmMatrix,1) to rij, lbound(aBmMatrix,2) to kol)

关于arrays - Redim Preserve 给出 'subscript out of range',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14055734/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com