我正在从工作表填充数组OccGroupELT并在之后进行一些计算。当外循环达到i = 9541时,我得到运行时错误9:下标超出范围,试图将值赋给OccGroupELT(9541,1)。知道为什么会这样吗?
Dim OccGroupELT(9554, 9) AS Variant
OccGroupELT = Sheets("Main").Range("ED15:EL" & ELTRowNum).Value
For i = 1 To ELTRowNum
For j = 3 To PerilCount + 2
OccGroupELT(i, j) = OccGroupELT(i, j) * (1 + ALEA)
Next j
Next i
答案 0 :(得分:2)
您的范围从行 15 到行ELTRowNum
,因此您无法从 1 循环到ELTRowNum
。您应该循环到ELTRowNum - 14
,或者更好地使用LBound
和Ubound
:
For i = Lbound(OccGroupELT, 1) To UBound(OccGroupELT, 1)