在VBA下标中打印一个超出范围的数组

时间:2017-09-16 19:00:28

标签: excel-vba vba excel

我在列中输入了一组字符串,以便以后处理。我希望能够打印数组以查看数组并了解所需的更改。在下面的示例中,所有14个单元格中都有值。但是,当我运行此代码时,我得到一个VBA“运行时错误'9':下标超出范围'错误。

 Sub Clean()
        Dim siteArrayOriginal()
        siteArrayOriginal() = Worksheets("Sheet1").Range("A1:A14").Value
        viewArray (siteArrayOriginal)
    End Sub

Public Function viewArray(myArray)
    Dim txt As String
    Dim i As Long

    For i = LBound(myArray) To UBound(myArray)
    txt = txt & myArray(i) & vbCrLf
    Next i

    MsgBox txt
End Function

为什么?

1 个答案:

答案 0 :(得分:2)

尽管你传递的是一列,但数组仍然是一个二维数组。

因此,在提及它时,您需要包含第二个维度:

  

myArray(i, 1)

所以:

Sub Clean()
    Dim siteArrayOriginal()
    siteArrayOriginal() = Worksheets("Sheet1").Range("A1:A14").Value
    viewArray (siteArrayOriginal)
End Sub

Public Function viewArray(myArray)
    Dim txt As String
    Dim i As Long

    For i = LBound(myArray) To UBound(myArray)
    txt = txt & myArray(i, 1) & vbCrLf
    Next i

    MsgBox txt
End Function

enter image description here