【发布时间】:2015-08-11 21:19:47
【问题描述】:
我需要一个宏(必须是宏),当且仅当两个单元格匹配时才会选择一个单元格。 =IF(a3=k8) 选择 k9。 A3 是静态的,但匹配数据可以位于行范围内的任何位置。因此,我需要在 k8:bz8 范围内查找 a3 中的数据,并且在每种情况下,选择其正下方的单元格。基本上是 HLOOKUP。选择该单元格后,我将调用另一个宏来填充该单元格。 我正在使用 Office 2016 for Mac(其中 sux) 谢谢 唐
【问题讨论】:
我需要一个宏(必须是宏),当且仅当两个单元格匹配时才会选择一个单元格。 =IF(a3=k8) 选择 k9。 A3 是静态的,但匹配数据可以位于行范围内的任何位置。因此,我需要在 k8:bz8 范围内查找 a3 中的数据,并且在每种情况下,选择其正下方的单元格。基本上是 HLOOKUP。选择该单元格后,我将调用另一个宏来填充该单元格。 我正在使用 Office 2016 for Mac(其中 sux) 谢谢 唐
【问题讨论】:
大概你不应该对WorksheetFunction object 使用HLOOKUP function 和通配符搜索有任何问题。
dim val as variant
with activesheet
on error goto no_match
val = worksheetfunction.hlookup(chr(42) & .range("a3").value & chr(42), .range("k8:bz9"), 2, false)
on error goto 0
end with
debug.print val
no_match:
if err.number = 1004 Then _
debug.print "no match"
【讨论】:
我想我会做一个直到循环。比如:
Range("A8").Select
Do Until Selection = Range("A3").Value
ActiveCell.Offset(0, 1).Select
Loop
ActiveCell.Offset(0, 1).Select
为了测试它,我将值 14 放在单元格 A3 中。然后我在第 8 行的每个单元格中放置了一堆不同的值。我在 k8 中放置了 14。宏将查看每个单元格,看看它是否等于 14,然后继续。如果您的数据用完,您将需要一个退出条件,但这应该可以帮助您开始。
【讨论】: