好的,所以我在这里找到了一个解决这个问题的方法,但它不在VBA中,所以我只需要正确的语法从数组中提取信息。
我已经在工作表的范围内定义了一个数组。我已经发现这实际上不是一维数组,正如我第一次想到的那样,即使第二维参数只是1。
现在我只是试图在数组中循环以帮助我了解它们的工作方式,并且我得到一个超出范围错误的下标。
Dim arr1 As Variant
Dim e As Variant
arr1 = Array(ActiveSheet.Range("A1:A4"))
For e = LBound(arr1) To UBound(arr1)
MsgBox (arr1(e, 1))
Next e
如何修复MsgBox (arr1(e,1))
行?
答案 0 :(得分:2)
有几个问题:
Array(..)
所以这里:
Dim arr1 As Variant
Dim e As Long
arr1 = ActiveSheet.Range("A1:A4").Value
For e = LBound(arr1,1) To UBound(arr1,1)
MsgBox arr1(e, 1)
Next e
答案 1 :(得分:2)
作为一个真正的 1-D阵列你可以这样:
"propertyFoo": "https://example.com/some-iri"
对于遍历数组,您可能希望使用Option Explicit
Sub main()
Dim arr1 As Variant
Dim e As Long
arr1 = Application.Transpose(ActiveSheet.Range("A1:A4").value) '<--| transposing a 1-column range you get a 1-row range that fits in an actual 1-D array
For e = LBound(arr1) To UBound(arr1) <--| no need to specify the column index
MsgBox arr1(e)
Next e
End Sub
语法:
For Each