我想编写一个VBA代码,根据给定的值查找匹配的单元格,而不考虑文本和数字。
我们可以在Excel中执行此操作:=match("*207*", C:C & "",0)
按 Ctrl + Shift + 输入。
但在VBA中,代码pos = WorksheetFunction.Match(lookup_value, lookup_range & "", 0)
不起作用
有没有解决方案?
答案 0 :(得分:2)
lookup_range & ""
无法在VBA中使用,因为您无法将String
连接到Range
对象,也不能连接到Array
。请改用Evaluate
:
pos=Sheet1.Evaluate("match(""*207*"", C:C & """",0)")
要在评估中使用变量,请执行以下操作:
pos = Application.Evaluate("MATCH(""*" & lookup_value & "*""," & _
lookup_range.Address(External:=True) & "& """",0)")