Excel VBA迭代范围对象数组

时间:2016-01-28 13:17:45

标签: excel vba

我正在尝试迭代一系列范围引用。

Dim labels As Collection
Set labels = New Collection
Dim myLabel As Range
Set myLabel = FindDataRow(mySearchterms, CurrentWorksheet) ' <- Returns a Range
labels.Add (myLabel)

后来我试图遍历那些Range引用,下面的代码不起作用:我得到一个运行时错误424.我理解一个Object是必需的,但是标签是如何变成一个String的。

Dim label As Variant
Set label = Nothing
For Each label In labels
    Debug.Print (label & " in: " & label.Row)
Next label

我尝试过关注this other answer here,但由于我是Excel中的VBA新手,我不明白Range引用如何放入数据结构中,以后检索/引用以访问label.Row as我想在上面(在这里说“~~&gt;在这里做你想做的任何事情”)

到目前为止,我的理解是labels是一个集合,并不关心其中的项目类型。所以我添加了Range引用。但我以后不能检索它们。我哪里错了?

1 个答案:

答案 0 :(得分:1)

从add方法中删除括号,因为这会强制将范围的值添加到集合而不是对象:

labels.Add myLabel