在另一个工作簿上执行刷新时,用户定义的函数错误输出

时间:2014-07-24 17:17:00

标签: excel-vba user-defined-functions volatile vba excel

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

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

1 个答案:

答案 0 :(得分:0)

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

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