应用程序函数匹配两个变量获取运行时错误

时间:2016-10-21 02:05:53

标签: excel excel-vba vba

  Set rng1 = Sheets("Reference").Range("a2:a2000")
  Set rng2 = Sheets("Reference").Range("b2:b2000")

      var1 = ActiveSheet.Range("c2").Value
      var2 = c.Offset(0, -1).Value


 c.Value = Application.Match(criteria1 & criteria2, rng1 & rng2, 0)

我正在尝试将两个变量从一个工作表匹配到另一个工作表,以查看该值是否存在于参考工作表中的两个条件,但我不断收到类型不匹配错误。匹配行是我收到错误的唯一行。

1 个答案:

答案 0 :(得分:0)

您不能在VBA中使用多列MATCH查找。

您可以做的最好的事情是创建一个有效的公式和Evaluate方法:

(未测试的)

Dim f As String, rng1, rng2, var1, var2, c As Range

Set c = Range("B6")

Set rng1 = Sheets("Reference").Range("a2:a2000")
Set rng2 = Sheets("Reference").Range("b2:b2000")

var1 = ActiveSheet.Range("c2").Value
var2 = c.Offset(0, -1).Value

f = "MATCH(""" & var1 & """&""" & var2 & """," & _
     rng1.Address() & "&" & rng2.Address() & ", 0)"

c.Value = rng1.Worksheet.Evaluate(f)

对于不熟悉MATCH使用的人: https://www.deskbright.com/excel/index-match-multiple-criteria/