我写了一个小的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
在我的功能中
答案 0 :(得分:1)
你可以尝试另外添加
Application.Volatile False
一开始,在你的第一行功能中,如:
Public Function MyTableResults(Code As String) As Variant
Application.Volatile False
'...your code here
End Function
但是,在插入行/列等某些情况下它可能会有所帮助,但在删除行时会有所帮助(我已尝试过)。