1

我写了一个小的 Excel VBA 函数“MyTableResults”

Public Function MyTableResults(Code As String) As Variant

它使用基于参数的查询过滤器从数据库返回一个十进制值。

我在大约 10 个单元格中使用了该公式,运行平稳。函数调用例如

=MyTableResults("Apple")

但是每次我在工作表中插入一列或删除一列时,我都会对函数产生影响,即调用函数时实际上没有从工作表中调用公式,而 excel 的速度太慢而无法恢复。

为什么当我编辑工作表(如插入列、删除列)使计算变慢时,excel 会调用我的函数,我该如何停止它?我试过了

Application.ScreenUpdating = False
Application.DisplayStatusBar = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
ActiveSheet.DisplayPageBreaks = False
ActiveSheet.AutoFilterMode = False

在我的功能中

4

1 回答 1

1

您可以尝试另外添加

Application.Volatile False

一开始,在你函数内部的第一行,比如:

Public Function MyTableResults(Code As String) As Variant
    Application.Volatile False

    '...your code here

End Function

但是,它在某些情况下可能会有所帮助,例如插入行/列,但在删除行时无济于事(我已经尝试过)。

于 2013-06-07T16:35:36.270 回答