2017-09-16 36 views
1

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

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 

为什么

+0

REDIM函数内的阵列 – Lowpar

回答

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