在 VBA 函数中运行 EXCEL 公式

Posted

技术标签:

【中文标题】在 VBA 函数中运行 EXCEL 公式【英文标题】:Run EXCEL formula in VBA function 【发布时间】:2017-01-27 08:10:22 【问题描述】:

我在 VBA 中有一个从单元格调用的自定义函数,我有一个这样的公式

"=SUM(SUMIFS(CURR_COUNT;MDL;""MODEL"";CURR_MDLCD;CODES;RG;""REGIONID""))/SUM(SUMIFS(CURR_COUNT;MDL;""MODEL"";RG;""REGIONID"";CURR_MDLCD;""<>     ""))"

我的自定义函数获取一些单元格值并将它们插入到只是字符串的公式中。之后我需要计算公式并将结果返回到我调用函数的单元格? 我可以在函数中计算这个公式并将结果返回到单元格吗?

【问题讨论】:

Application.WorksheetFunction @mojo 为什么不在宏录制器中录制呢? 我想知道是否有可能在函数中评估这种公式并返回结果? 你的答案在这里:***.com/a/41754122/4926357 Application.WorksheetFunction 我认为可以解决我的问题,但是当我尝试传递数组标准时,它返回 0 但应该返回 >0 WorksheetFunction.Sum(WorksheetFunction.SumIfs(COUNT, MDL, Model, MDLCD, codes, RG, RegionId)) 代码 = 123;25;37,但如果我设置例如,像 123 这样的代码计算得很好。我做错了什么? 【参考方案1】:

假设您的公式字符串在实际放入单元格时可以工作,那么如果您使用 Application.Evaluate 应该可以工作 - 但您不包含等号。

例如计算

=SUM(A1:B1)

在 VBA 中你会使用

Application.Evaluate("SUM(A1:B1)")

【讨论】:

以上是关于在 VBA 函数中运行 EXCEL 公式的主要内容,如果未能解决你的问题,请参考以下文章

在 Excel 公式中调用 VBA 类模块

Excel VBA“公式”函数

Excel VBA 函数失败,但公式在工作表中有效

excel vba函数返回数组并粘贴到工作表公式中

使用公式将数组从 VBA 函数输出到 Excel 工作表

通过用户定义的函数VBA缩短excel公式