在 VBA 中,数组的下界默认为 0,无法直接设置下界为 1。因此,在你的代码中,将下界设置为 1 会导致下界越界的错误。

要解决此问题,可以通过以下两种方式来修改代码:

  1. 将数组的下界设置为 0,然后调整循环和索引的范围。
Sub aaaa1()
    Dim dataArr() As Variant
    ReDim dataArr(1 To 2, 0 To 999, 0 To 6)
    dataArr(1) = Worksheets(1).Range('A1:G1000').Value
    dataArr(2) = Worksheets(2).Range('A1:G1000').Value

    Dim i As Long, j As Long, k As Long
    For i = 1 To 2
        For j = 0 To 999
            For k = 0 To 6
                ' 处理 dataArr(i, j, k)
            Next k
        Next j
    Next i
End Sub
  1. 不更改数组的下界,使用默认的下界 0,并调整读取和处理数组的逻辑。
Sub aaaa1()
    Dim dataArr() As Variant
    dataArr = Worksheets(1).Range('A1:G1000').Value

    Dim i As Long, j As Long
    For i = 1 To 1000
        For j = 1 To 7
            ' 处理 dataArr(i - 1, j - 1)
        Next j
    Next i
End Sub

在上述代码中,第一种方式将数组的下界设置为 0,并调整了循环和索引的范围。第二种方式保持数组的默认下界为 0,并调整了读取和处理数组的逻辑。

请根据你的具体需求选择其中一种方式进行修改。如果还有其他问题,请随时提问。非常抱歉之前给你带来的困惑。

VBA 数组下界越标错误9:如何解决和代码示例

原文地址: https://www.cveoy.top/t/topic/bXLV 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录