【问题标题】:How to stop VBA function showing formula result in Arguments Dialog in MS Excel如何停止 VBA 函数在 MS Excel 的参数对话框中显示公式结果
【发布时间】:2013-05-02 13:53:13
【问题描述】:

当我们使用 VBA 将 UDF 添加到 MS-Excel 时,插入时函数会被计算两次:

1) 一旦在 FUNCTION ARGUMENTS 对话框中将所有参数提供给函数:因此结果在 FUNCTION ARGUMENTS 对话框本身中显示为公式结果

2) 在 FUNCTION ARGUMENTS 对话框中单击 OK 后:因此结果显示在相应的单元格中。

我也提到了Stop VBA Evaluate from calling target function twice,但它使函数永远不会被评估。

请问有什么方法可以停止对 UDF 函数的这种双重评估?

谢谢

【问题讨论】:

  • 您可能想要发布该功能(编辑您的原始帖子),因为它很难分析您看不到的东西...
  • Function dummyFunction(dummy As Integer) Debug.Print "Result:" & dummy End Function 怎么样,你会看到它被评估了几次,根据上面的问题

标签: excel vba


【解决方案1】:

如果双重评估的问题是速度考虑(UDF需要很长时间计算),那么我建议如下。

  1. 向 UDF 添加一个名为 doCalculate 的额外参数
  2. 在工作表的单元格 A1 中输入 FALSE
  3. 将 UDF doCalculate 参数指向单元格 A1
  4. 如果doCalculate为假,添加一行代码退出函数

这样,UDF 将不会从函数对话框中计算。但是,您可以通过将 A1 更改为 TRUE 来激活 UDF

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-04
    • 2014-08-11
    • 1970-01-01
    • 2018-08-07
    • 1970-01-01
    相关资源
    最近更新 更多