【发布时间】:2013-06-07 16:01:45
【问题描述】:
我写了一个小的 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
在我的函数中
【问题讨论】:
-
对于其他提示,除了我的回答,您可以添加一些其他信息 - 您调用函数的方式是什么?您如何将
Code设置为字符串或对任何单元格的引用? -
另外你可以尝试使用
Activesheet.EnableCalculation = False。但要小心,因为它肯定会切换整个工作表的计算。