Excel 宏,用于在两个其他单元格匹配时选择一个单元格

Excel 宏,用于在两个其他单元格匹配时选择一个单元格,excel,vba,Excel,Vba,我需要一个宏(必须是宏),当且仅当两个单元格匹配时才选择一个单元格=如果(a3=k8)选择k9。A3是静态的,但匹配数据可以位于行范围内的任何位置。因此,我需要在k8:bz8范围内查找a3中的数据,并且在任何情况下,都需要选择其正下方的单元格。基本上是赫卢库普。一旦选定该单元格,我将调用另一个宏来填充该单元格。 我正在使用Office 2016 for Mac(哪款sux) 谢谢 Don我想我会做一个do-Until循环。比如: Range("A8").Select Do Until Sele

我需要一个宏(必须是宏),当且仅当两个单元格匹配时才选择一个单元格=如果(a3=k8)选择k9。A3是静态的,但匹配数据可以位于行范围内的任何位置。因此,我需要在k8:bz8范围内查找a3中的数据,并且在任何情况下,都需要选择其正下方的单元格。基本上是赫卢库普。一旦选定该单元格,我将调用另一个宏来填充该单元格。 我正在使用Office 2016 for Mac(哪款sux) 谢谢
Don

我想我会做一个do-Until循环。比如:

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,然后继续。若您的数据用完了,您将需要一个退出条件,但这应该可以让您开始了。

大概您在使用通配符搜索时不会遇到任何问题

    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"

谢谢这很有效。我将偏移量更改为1,0以选择下面的单元格。Oops。很好地抓住了打字错误。