【发布时间】:2019-12-18 12:39:43
【问题描述】:
我试图在网上找到解决方案,但无论出于何种原因根本找不到任何东西(也许我缺乏搜索技能)。我觉得这是一个相当简单的查询。
我正在声明一个数组并使用以下内容为其分配数据,我已经确认这是有效的:
Dim arr As Variant
arr = Sheet.Range("A1").CurrentRegion
现在,鉴于这是一个二维数组(只有 2 列数据),我想使用匹配类型的函数来返回与数组第 1 列中的值关联的行号。我的最终目标是使用它来调用数组第 2 列中的相应值 - 本质上是在 VBA 中构建一个索引/匹配类型的场景。但是,Application.Match 函数失败,因为这不是一维数组。请参见下面的示例:
1|Apple |Fruit
2|Tomato |Fruit
3|Carrot |Vegetable
4|Zucchini|Vegetable
我想要实现的是类似于 MATCH("Tomato", arr(), 0) 的结果,“2”是与番茄相关的行号。我只需要在数组的第 1 列中进行搜索。有人可能对最简单的方法有任何建议吗?
谢谢!
【问题讨论】:
-
使用简单的
For...循环遍历数组? -
要查找某个范围内的数据,请使用
Range.Find方法。这就是它的设计目的。