【发布时间】:2013-12-02 14:16:34
【问题描述】:
您好,我创建了一个评估字符串的快速函数
Function Evalue(ByVal str As String)
Application.Volatile
Evalue = Evaluate([str])
End Function
我有一个数组,其中包含我用作字符串的所有公式。根据情况,我使用 INDEX/MATCH 来选择好的公式,然后用 Evalue 来评估它。
如果字符串公式像 SUM(A1:A20) 一样位于 1 个块中,则它可以完美运行 但是如果它在几个块中,比如
SUM(A1:A20)-SUM(B1:B20) 它返回一个#NAME 错误,如果我将字符串放在' ' 或" " 之间的数组中,它会返回#VALUE 错误。
【问题讨论】:
-
(SUM(A1:A20)-SUM(B1:B20))怎么样? -
还是
#NAME错误... -
哦,对了。调用 Evaluate 时,可能会将
[]关闭str。正在检查... -
还是
#NAME错误...对我来说太糟糕了 -
这是在模块中还是在工作表中?如果该函数在一个模块中,它将不知道您引用的是哪个表。我会尝试
Evaluate("=SUM(Sheet1!A1:A20)-SUM(Sheet1!B1:B20)")