VBA 使用字符串参数计算函数
VBA Evaluate function with string arguments
我可以使用此功能(它 returns 文本 DK001 在 ID 范围内所在的行)
Found = Application.Evaluate("=IF(ID=""DK001"",ROW(ID),""x"")")
我想将搜索条件(例如 DK001)作为字符串提供,例如
Found = Application.Evaluate("=IF(ID=SearchString,ROW(ID),""x"")")
我未能创建接受为搜索条件的字符串。我需要你的帮助!我做错了什么?
这个 Evaluate 函数一直困扰着我....
如果我现在想向函数发送一个值(不是字符串)怎么办?
Found = Application.Evaluate("=IF(ID=1,ROW(ID),""x"")")
以上有效!
但是如果我想让它成为一个像
这样的变量
Found = Application.Evaluate("=IF(ID=MyValue,ROW(ID),""x"")")
然后呢?
双 "
以将它们包含为文字:
SearchString = "DK001"
Found = Application.Evaluate(""=IF(ID=""" & SearchString & """,ROW(ID),""x"")")
你可以试试吗
Application.Evaluate("=IF(ID="" & searchsrtring & "",ROW(ID),""x"")")
使用 stdVBA
(一个主要由我自己维护的开源库),您可以使用 stdLambda
来完成此操作,如下所示:
set lambda = stdLambda.Create("if id.value = then id.row else ""x""").bindGlobal("id",range("ID"))
'later...
Found = lambda("DK001")
我可以使用此功能(它 returns 文本 DK001 在 ID 范围内所在的行)
Found = Application.Evaluate("=IF(ID=""DK001"",ROW(ID),""x"")")
我想将搜索条件(例如 DK001)作为字符串提供,例如
Found = Application.Evaluate("=IF(ID=SearchString,ROW(ID),""x"")")
我未能创建接受为搜索条件的字符串。我需要你的帮助!我做错了什么?
这个 Evaluate 函数一直困扰着我....
如果我现在想向函数发送一个值(不是字符串)怎么办?
Found = Application.Evaluate("=IF(ID=1,ROW(ID),""x"")")
以上有效!
但是如果我想让它成为一个像
这样的变量Found = Application.Evaluate("=IF(ID=MyValue,ROW(ID),""x"")")
然后呢?
双 "
以将它们包含为文字:
SearchString = "DK001"
Found = Application.Evaluate(""=IF(ID=""" & SearchString & """,ROW(ID),""x"")")
你可以试试吗
Application.Evaluate("=IF(ID="" & searchsrtring & "",ROW(ID),""x"")")
使用 stdVBA
(一个主要由我自己维护的开源库),您可以使用 stdLambda
来完成此操作,如下所示:
set lambda = stdLambda.Create("if id.value = then id.row else ""x""").bindGlobal("id",range("ID"))
'later...
Found = lambda("DK001")