VBA使用字符串参数评估函数

时间:2015-02-27 14:12:57

标签: excel vba evaluate

我有这个功能工作(它返回文本DK001位于ID范围内的行)

Found = Application.Evaluate("=IF(ID=""DK001"",ROW(ID),""x"")")

我想将searchcriteria(例如DK001)作为字符串提供,例如

Found = Application.Evaluate("=IF(ID=SearchString,ROW(ID),""x"")")

我创建了一个被接受为搜索条件的字符串失败了。我需要你的帮助!我做错了什么?


这个评估功能困扰着我......

如果我现在想要向函数发送值(不是字符串)怎么办?

Found = Application.Evaluate("=IF(ID=1,ROW(ID),""x"")")

以上作品!

但如果我希望这是一个像

这样的变量
Found = Application.Evaluate("=IF(ID=MyValue,ROW(ID),""x"")")

然后呢?

3 个答案:

答案 0 :(得分:6)

加倍"将它们包含为文字:

SearchString = "DK001"
Found = Application.Evaluate(""=IF(ID=""" & SearchString & """,ROW(ID),""x"")")

答案 1 :(得分:0)

通过 stdVBA,您可以使用 stdLambda 完成此操作,如下所示:

set lambda = stdLambda.Create("if id.value = $1 then id.row else ""x""").bindGlobal("id",range("ID"))
'later...
Found = lambda("DK001")

答案 2 :(得分:-1)

你能试试吗

Application.Evaluate("=IF(ID="" & searchsrtring & "",ROW(ID),""x"")")