【问题标题】:Macro to select one cell if two other cells match如果其他两个单元格匹配,则选择一个单元格的宏
【发布时间】:2015-08-11 21:19:47
【问题描述】:

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

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    大概你不应该对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"
    

    【讨论】:

      【解决方案2】:

      我想我会做一个直到循环。比如:

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

      【讨论】:

      • 谢谢。这非常有效。我将偏移量更改为 1, 0 以选择下面的单元格。
      • 糟糕。很好地抓住了错字。
      猜你喜欢
      • 2019-11-20
      • 1970-01-01
      • 2017-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多