【问题标题】:User defined function erroring out when refresh is performed on another workbook在另一个工作簿上执行刷新时用户定义的函数出错
【发布时间】:2014-07-24 17:16:59
【问题描述】:

我在一个工作簿 (WB 1) 中有一个完美运行的用户定义函数 (Volatile)。但是,当我切换到另一个工作簿 (WB 2) 并进行刷新 (F9) 并切换回 WB 1 时,UDF 错误 (#VALUE) 会出现。但是,当我再次在 WB 1 上刷新 (F9) 时,该功能开始工作。

这是一个问题,因为我在 WB 2 中引用了来自 WB 1 的值。

【问题讨论】:

  • 是否可以发布 UDF 以及 volatile 是什么意思?
  • “我有一个完美运行的用户定义函数” - 好像你没有,但除非你发布它,否则无法判断问题是什么......

标签: excel user-defined-functions volatile vba


【解决方案1】:

UDF 代码很可能在某处引用了 ActiveWorkbook,因此当您切换到“WB 2”时,那个 是您的活动工作簿而不是“WB 1”,在这种情况下,例如,引用特定单元格可能无法按预期工作。正如你所说,当你回到“WB 1”并重新计算时,事情又开始工作了,这进一步证明了这一点。

请注意,单击 F9 将重新计算 所有 打开的工作簿在 Excel 的 同一会话,而不仅仅是活动工作簿。如果您只想重新计算(或刷新,如您所说)活动工作表,您可以改为使用 Shift+F9

【讨论】:

    猜你喜欢
    • 2015-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多