如何查看数组中的项目

urd*_*boy 1 excel vba

我得到Subscript out of rangeDebug.Print myarr(i).

Dim ws As Worksheet: Set ws = Sheets("Sheet1")
Dim myarr as Variant, i as Long
myarr = Array(ws.Range("A2:A" & ws.Range("A" & ws.Rows.Count).End(xlUp).Row))

For i = LBound(myarr) To UBound(myarr)
    Debug.Print myarr(i)
Next i
Run Code Online (Sandbox Code Playgroud)

我用(下面)验证了范围A2:A5

Msgbox ws.Range("A2:A" & ws.Range("A" & ws.Rows.Count).End(xlUp).Row)).Address (false, false)
Run Code Online (Sandbox Code Playgroud)

我也试过换myarr

 = ws.Range("A2:A" & ws.Range("A" & ws.Rows.Count).End(xlUp).Row) 
 = ws.Range("A2:A" & ws.Range("A" & ws.Rows.Count).End(xlUp).Row).Value
 = Array(Temp.Range("A2:A" & Temp.Range("A" & Temp.Rows.Count).End(xlUp).Row).Value)
Run Code Online (Sandbox Code Playgroud)

第一个给出Subscript out of range,第二个给出type mismatch

使用数组相当新,我不知道我在这里缺少什么.我是否错误地加载数组或尝试错误地查看数组中的项目?

Sco*_*ner 5

myarr 是一个带有一列的二维数组.

您需要将引用添加到第二个维度.

Debug.Print myarr(i,1)
Run Code Online (Sandbox Code Playgroud)

另外,要从范围加载数组,只需指定值:

myarr = ws.Range("A2:A" & ws.Range("A" & ws.Rows.Count).End(xlUp).Row).Value
Run Code Online (Sandbox Code Playgroud)

所以

Dim ws As Worksheet: Set ws = Sheets("Sheet1")
Dim myarr as Variant, i as Long
myarr = ws.Range("A2:A" & ws.Range("A" & ws.Rows.Count).End(xlUp).Row).Value

For i = LBound(myarr,1) To UBound(myarr,1)
    Debug.Print myarr(i,1)
Next i
Run Code Online (Sandbox Code Playgroud)