我在列中输入了一组字符串,以便以后处理。我希望能够打印数组以查看数组并了解所需的更改。在下面的示例中,所有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
为什么?
答案 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