Vba 在Evaluate函数中使用宏生成的变量

Vba 在Evaluate函数中使用宏生成的变量,vba,excel,Vba,Excel,我已经创建了一个宏变量active_search,我正试图将它包含在一个求值函数中。但是,求值函数没有输出正确的值。有人对如何做到这一点有什么建议吗 代码: ”这准确地为下面的公式提供了单元格参考 活动搜索=单元格(i,搜索列)。地址 活动匹配=单元格(i,匹配列)。地址 MsgBox活动搜索“=&B$3(或第一行) MsgBox活动_匹配'=$A$3 '以下标准的公式 '检查搜索=[IFERROR(匹配(B3,列出关键字,0),0)]让我们来解释一下@simoco的评论。 []这是求值函数的快

我已经创建了一个宏变量active_search,我正试图将它包含在一个求值函数中。但是,求值函数没有输出正确的值。有人对如何做到这一点有什么建议吗

代码:

”这准确地为下面的公式提供了单元格参考
活动搜索=单元格(i,搜索列)。地址
活动匹配=单元格(i,匹配列)。地址
MsgBox活动搜索“=&B$3(或第一行)
MsgBox活动_匹配'=$A$3
'以下标准的公式

'检查搜索=[IFERROR(匹配(B3,列出关键字,0),0)]让我们来解释一下@simoco的评论。

[]
这是
求值
函数的快捷方式,对
变量不起作用

要使其发挥作用,您必须像simoco在其评论中所做的那样明确使用它。
要获得正确的值,请使用这些值(simoco已提供的值)


语法:Evaluate(name),其中
name
参数是字符串形式。

使用
check\u match=Evaluate(“IFERROR(搜索(““精确”、“活动”匹配和“,”0)”)
' this accurately provides the cell reference for the formula below
active_search = Cells(i, search_col).Address
active_match = Cells(i, match_col).Address

MsgBox active_search    ' = &B$3 (or row i)
MsgBox active_match     ' = $A$3


' formulas for the criteria below
' check_search = [IFERROR(MATCH(B3,list_keywords,0),0)]    << Note: this works correctly
check_search = [IFERROR(MATCH(active_search,list_keywords,0),0)]
check_match = [IFERROR(SEARCH("exact",active_match,0)]

MsgBox check_search     ' currently = 0 but should be 2250
MsgBox check_match
check_search = Evaluate("IFERROR(MATCH(" & active_search & "list_keywords,0),0)")
'~~> provided that list_keywords is named Range
check_match = Evaluate("IFERROR(SEARCH(""exact""," & active_match & ",0),0)")