EXCEL越來越大,運算的數字越來越多,要如何增加程式運算的效率呢? 幾個重要的運用,跟著我一起學起來吧~~~
1.ScreenUpdating
我們是否在寫程式時,時常呼叫各個不同的工作簿,又或者時常在使用select時,螢幕可是不斷地隨著程式碼,好像人動作一樣,不斷的切換工作簿。這個情況只要先關掉ScreenUpdating,讓螢幕不要隨著程式碼作動,最後再開啟螢幕變動就可以囉!!!
Application.ScreenUpdating = False 關掉螢幕變動
Application.ScreenUpdating = True 開啟螢幕變動
2.Calculation
平常在使用EXCEL時,幾乎都是讓EXCEL自動計算的方式,當數據很多連動時,時常改一個數字,就要等EXCEL計算!!! 是不是很惱人!!!
所以我們在寫程式時,只要不需要計算時,先讓它暫停(手動),等我們要整理的數字都到位了,再改回自動運算囉
Application.Calculation = xlCalculationManual 手動計算
Application.Calculation = xlCalculationAutomatic 自動計算
3.Events
有時候整個EXCEL裡,已經寫滿了各種會觸發的VBA,此時如果因為不斷的Change額觸發,只會不斷迴圈,導致當機!!!
這時就要記得先關掉事件觸發。例如:
Application.EnableEvents = False 暫停事件觸發
Application.EnableEvents = True 開啟事件觸發
4.Status Bar
我們使用EXCEL時,EXCLE最下方,時常會出現目前的狀態列表,再跑程式的時候,它根本不需要執行,記得先暫時關掉!!!
Application.DisplayStatusBar = False 關閉狀態列更新
Application.DisplayStatusBar = True 開啟狀態列更新
5.Option Explicit
在寫VBA時,對於變數形態上的定義,可以非常不明確就可以執行。但是,這樣就會有一個缺點,當程式碼不知道變數型態時,就會自動將變數視為Variant類型,而佔存資源,因此在運算效能上會較差。當需要運算的程式越來越多時,就會有較大的影響,所以一開始就想成好的習慣,明確宣告變數的型態。
Sub SpeedUp()
Option Explicit '強制宣告變數型態
Application.ScreenUpdating = False '關掉螢幕變動
Application.Calculation = xlCalculationManual '手動計算
Application.EnableEvents = False '暫停事件觸發
Application.DisplayStatusBar = False '關閉狀態列更新
'VBA Code 放這裡!
Application.ScreenUpdating = True '開啟螢幕變動
Application.Calculation = xlCalculationAutomatic '自動計算
Application.EnableEvents = True '開啟事件觸發
Application.DisplayStatusBar = True '開啟狀態列更新
End Sub