在Excel宏中创建CSE数组公式

时间:2012-12-06 17:05:58

标签: excel vba

我最近开始学习在Excel中创建VBA宏,但是,我完全不知道如何在我的宏中创建CSE数组公式

我想将变量定义为工作表中A列中值=值1和B列=值2

的行

在excel中,下面的公式非常有效: {=Match(1,(A:A=1)*(B:B=2),0)}

但是,我现在想在我的宏中使用它: variable = {=Match(1,(Sheets("Right Sheet").range("A:A")=value1)*(Sheets("Right Sheet").range("B:B")=value2),0)}

任何人都可以对此提供任何帮助吗? 我玩过ArrayFormula的各种变种,但根本没有成功! 理想情况下,我希望我的value1value2数字等于我之前在宏中定义的变量(1和2)

提前致谢

1 个答案:

答案 0 :(得分:1)

这(例如)对我有用:

Debug.Print Application.Evaluate("SUM(A1:A5*B1:B5)")

您需要将公式构建为字符串,并且不要使用“=”和“{}”。

Debug.Print Application.Evaluate("Match(1,(Sheet1!A:A=" & val1 & _
                                  ")*(Sheet1!B:B=" & val2 & "),0)")