【发布时间】:2021-11-28 20:27:50
【问题描述】:
这是我的代码:
Debug.Print "Full range: " & searchResult.Address
Debug.Print "Size of range: " & searchResult.Count
Dim cell As Range
For Each cell In searchResult
Debug.Print "from for each: " & cell.Address
Next cell
Debug.Print "from item 0: " & searchResult.item(0).Address
Debug.Print "from item 1: " & searchResult.item(1).Address
Debug.Print "from item 2: " & searchResult.item(2).Address
这是我的输出:
Full range: $M$125,$M$148,$M$161
Size of range: 3
from for each: $M$125
from for each: $M$148
from for each: $M$161
from item 0: $M$124
from item 1: $M$125
from item 2: $M$126
for each 给了我想要的结果,而“item”只给出了工作表中的下一个项目,而不是那个范围。 我只想获取该范围内特定项目的地址。假设像“searchResult(2).address = $M$161”(如果它是基于 0 的情况下)之类的话,就像您将访问数组中的项目一样。 我确定这很简单,但找不到我需要使用的属性的名称... 感谢您的帮助。
【问题讨论】:
-
不连续范围不会返回连续数组!这样的范围有区域。你可以在
searchResult.Address看到它的具体区域地址,像逗号分隔... -
供参考:Range.Item
-
@FaneDuru,好的,感谢您提供此信息。感谢您使用“searchResult.Areas.item(1).Address”的评论完成了这项工作,谢谢!
-
如果您想在搜索结果中使用索引,那么您可能需要类似单元格集合而不是 Union'ed Range 对象。你在哪里/如何创建
searchResult? -
@TimWilliams 搜索结果的创建方式类似于此答案/函数。它只是找到搜索字符串的单元格地址列表。 stackoverflow.com/questions/69901221/…