簡體   English   中英

Excel VBA函數重新計算

[英]Excel VBA Function Recalculation

我寫了一個小的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

在我的職能

您可以嘗試另外添加

Application.Volatile False

首先,在函數的第一行中,例如:

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

    '...your code here

End Function

但是,它在某些情況下可能會有所幫助,例如插入行/列,但在刪除行時卻無濟於事(我嘗試過)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM