如何解决运行时错误“ 9”下标超出范围?

时间:2019-02-20 09:02:10

标签: excel vba

我的Excel工作表中有三列-参考,值和日期。该代码将遍历所有给定的值,并且可以正常运行,但最后在pReference = data_table2(i + 1, 1)处出现运行时错误。

Set Sheet_data = ThisWorkbook.Worksheets("Setup")
last_Row = Sheet_data.Range("A1").CurrentRegion.Rows.Count

Set data_table = Sheet_data.Range("A2:C" & last_Row)
data_table2 = data_table.Value2

' New Code for Excel Export
For i = 1 To (last_Row - 1)
    If isDeveloper() = True Then
        pReference = data_table2(i + 1, 1)
        pValue = data_table2(i + 1, 2)
        pdate = data_table2(i + 1, 3)
    End If

1 个答案:

答案 0 :(得分:0)

看看last_Row的值。

如果您有一个值区域,例如A1:C22,last_row将为23,但是您分配给data_table Range(“ A2:C”&last_row)的原因是从第二行开始。

最后总是下标超出范围错误,最后一次发信号的coz分配i = 23,并且数组len为22,所以您超出范围

将for循环更改为每个循环,或通过这种方式进行

For i = 1 to UBound(data_table2)
    If isDeveloper() = True Then
        pReference = data_table2(i, 1)
        pValue = data_table2(i, 2)
        pdate = data_table2(i, 3)
    End If