我的宏用數字更新了一個大的電子表格,但它運行速度非常緩慢,因爲excel在計算結果時會顯示結果。在宏完成之前,如何阻止excel渲染輸出?我的宏如何計算它,如何防止Excel呈現電子表格?
6
A
回答
14
我同時使用所提出的解決方案:
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
...
...
...
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
0
您可以在選項對話框中關閉自動計算,它將其設置爲只在您按F9時計算。
2
Application.ScreenUpdating =假
當然,並將其設置回爲True再次當您完成後,即使出現錯誤。 例子:
Public Sub MyMacro
On Error GoTo ErrHandler
Application.ScreenUpdating = False
... do my stuff that might raise an error
Application.ScreenUpdating = True
Exit Sub
ErrHandler:
Application.ScreenUpdating = True
... Do something with the error, e.g. MsgBox
End Sub
+0
如何確保在發生錯誤後能夠恢復? – Oskar 2008-09-27 18:08:46
1
在喬和SEER大廈(該使用舊的語法,所以它與Office 2000的VBA兼容):
On Error Goto AfterCalculation
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
...
AfterCalculation:
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
2
我也傾向於使用兩種建議的解決方案,即 ,但也保留用戶以前的計算模式。
對於這個特定的應用程序,這可能是根本不算什麼, 但它通常是讓用戶有你的程序結束後恢復其設置的最佳實踐:
Application.ScreenUpdating = False
PreviousCalcMode = Application.Calculation
Application.Calculation = xlCalculationManual
...
...
...
Application.Calculation = PreviousCalcMode
Application.ScreenUpdating = True
NB。如果在你的其他代碼中出現錯誤,插入一些可以打開Application.ScreenUpdating的錯誤處理也是值得的。) 如果內存爲我服務,當ScreenUpdating = false時,Excel不會顯示任何錯誤消息等。 事情是這樣的:
Sub DoSomeThing
On Error Goto DisplayError
Application.ScreenUpdating = False
PreviousCalcMode = Application.Calculation
Application.Calculation = xlCalculationManual
...
...
...
Application.Calculation = PreviousCalcMode
Application.ScreenUpdating = True
Exit Sub
DisplayError:
Application.Calculation = PreviousCalcMode
Application.ScreenUpdating = True
MsgBox Err.Description
End 'This stops execution of macro, in some macros this might not be what you want'
'(i.e you might want to close files etc)'
End Sub
相關問題
- 1. 如何防止免費分發商業Excel電子表格
- 2. 如何防止呈現HTML表格的asp:RadioButtonList?
- 3. 如何使用Excel宏模塊格式化Excel電子表格單元格?
- 4. 如何防止呈現html的contenteditable div?
- 5. 計算Excel電子表格計算的執行時間?
- 6. 如何防止rails呈現public/index.html?
- 7. 如何使用宏在Excel電子表格中顯示我的Windows用戶名?
- 8. 如何防止在電子表格中添加它們時包裝的時間?
- 9. 如何計算電子表格中單元格的配對
- 10. 如何在Excel VBA宏期間打開從SAP調用的Excel電子表格
- 11. 使用Excel宏查詢電子表格
- 12. 如何在Excel電子表格中啓用和禁用昂貴的計算?
- 13. 建議如何呈現#records的計算
- 14. 電子 - 如何防止UI的鎖定
- 15. 防止表單域呈現
- 16. 如何防止枝條自動呈現嵌入的表單?
- 17. 如何從Rails中的Excel電子表格填充表格?
- 18. 如何在Google電子表格中計算時間/小時數?
- 19. 如何在R中執行電子表格類型計算?
- 20. accep_nested_attributes_for停止我的子表單呈現?
- 21. 我如何防止滾動被阻止滾動的子格
- 22. 我如何使用PowerShell導出到Excel電子表格
- 23. 如何通過Google電子表格API(gdata)從Google電子表格中獲取重新計算的單元格
- 24. 如何使用coldfusion將Excel電子表格上傳到現有表格中?
- 25. Excel VBA腳本/宏到谷歌電子表格腳本/宏
- 26. 如何從HTML表格導出到Excel電子表格?
- 27. 如何從Excel電子表格更新SQL表格?
- 28. 如何將表格複製到Excel或Google電子表格
- 29. 如何使用CodeIgniter從HTML表格創建Excel電子表格
- 30. 如何防止空格計算爲字符?
我只有宏觀運行時我執行它,所以我在這方面很好,但我不想看周圍的數據(由宏指定)Excel中複製,只最終結果 – Oskar 2008-09-27 18:05:42