如果两个其他单元格匹配,则选择一个单元格

时间:2015-08-11 21:19:48

标签: excel vba

我需要一个宏(必须是一个宏),如果 - 只有 - 两个单元格匹配,它将选择一个单元格。 = IF(a3 = k8)选择k9。 A3是静态的,但匹配数据可以是行范围内的任何位置。因此,我需要在k8:bz8范围内的a3中查找数据,并且在每种情况下,选择其下方的单元格。基本上是HLOOKUP。一旦选择了该单元格,我将调用另一个宏来填充该单元格。 我正在使用Office 2016 for Mac(sux) 谢谢 唐

2 个答案:

答案 0 :(得分:2)

据推测,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"

答案 1 :(得分:1)

我想我会做一个Do Until Loop。类似的东西:

Range("A8").Select

Do Until Selection = Range("A3").Value
    ActiveCell.Offset(0, 1).Select
Loop

ActiveCell.Offset(0, 1).Select

为了测试它,我将值14放在单元格A3中。然后我在第8行的每个单元格中放了一堆不同的值。我把14放在k8中。宏将查看每个单元格,看它是否等于14,然后继续前进。如果你的数据用完了,你就需要一个退出条件,但这应该可以让你开始。