Application.Evaluate不适用于条件为“>”或“ <”的SUMIF

时间:2019-03-30 15:16:36

标签: excel vba excel-formula

我正在尝试使用Application.Evaluate方法来评估标准为“> =”

的Sumif公式

以下是我要评估的代码行 所以我在单元格E1到E15中有1到15的订单号,在单元格F1到F15中有它们的相应金额。

用户在J1中输入他的订单号。超过该订单号的金额将使用Sumif Function汇总并显示。

现在,我想使用Application.Evaluate找到此答案

MsgBox( Application.Evaluate("=SUMIF(E1:E15, ">=" & J1, F1:F15)"))

我对True或False消息框表示欢迎。 现在我猜想Sumif函数中的反逗号。 ">="导致了此问题。因此,要解决此问题,我将函数修改为

 MsgBox( Application.Evaluate("=SUMIF(E1:E15, """">="""" & J1, F1:F15)"))

但是现在它返回0,尽管其中有值。

如果有人能帮助我了解解决方法,我将不胜感激

*注:请不要建议使用任何其他功能。我想纯粹从Application.Evaluate的角度来了解它,因为我的另一行代码将依赖于它。 *

谢谢。

1 个答案:

答案 0 :(得分:1)

字符串中的所有引号必须加倍:

  

">="

应该是

"">=""

也:

  

Application.Evaluate

将在活动工作表上工作,因此,如果错误的工作表处于活动状态,则将在错误的工作表上执行相加运算,因为公式本身未提供工作表名称。

使用

Worksheets("Sheet1").Evaluate

"Sheet1"更改为工作表。

总共:

MsgBox  Worksheets("Sheet1").Evaluate("=SUMIF(E1:E15, "">="" & J1, F1:F15)")