我在Excel中使用VBA工具,當我嘗試通過VBA保存工具時,在沒有其他工作簿打開的情況下,該工具將在10秒內保存。即使其他工作簿打開時,宏應在10秒內保存。當其他工作簿打開時宏運行速度非常緩慢
如果其他工作簿已打開,則保存工具需要10分鐘以上的時間,但此工具/代碼未鏈接到任何打開的工作簿。當我嘗試通過VBA保存此工具時,我認爲它正在計算其他工作簿中的所有公式,然後保存此工具。
我使用這個工具的頻率很高,我不想在每次使用此工具時關閉所有其他工作簿。
可以解決這個問題嗎?
我在Excel中使用VBA工具,當我嘗試通過VBA保存工具時,在沒有其他工作簿打開的情況下,該工具將在10秒內保存。即使其他工作簿打開時,宏應在10秒內保存。當其他工作簿打開時宏運行速度非常緩慢
如果其他工作簿已打開,則保存工具需要10分鐘以上的時間,但此工具/代碼未鏈接到任何打開的工作簿。當我嘗試通過VBA保存此工具時,我認爲它正在計算其他工作簿中的所有公式,然後保存此工具。
我使用這個工具的頻率很高,我不想在每次使用此工具時關閉所有其他工作簿。
可以解決這個問題嗎?
如果計算是造成這應該確認
放置在的ThisWorkbook模塊的延遲
Option Explicit
Private Sub Workbook_Open()
enableCalcs True
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
enableCalcs False
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
enableCalcs False
End Sub
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
enableCalcs
End Sub
Private Sub enableCalcs(Optional ByVal opt As Boolean = True)
Dim wb As Workbook, ws As Worksheet
Application.Calculation = IIf(opt, xlCalculationAutomatic, xlCalculationManual)
For Each wb In Workbooks
For Each ws In Worksheets
ws.EnableCalculation = opt
Next
Next
End Sub
如果我添加下面提到的代碼,那麼僅在此工作簿中禁用自動計算。
**是否有禁用自動計算所有打開的工作簿代碼?**
'私人小組Workbook_AfterSave(BYVAL成功作爲布爾) Application.Calculation = xlCalculationAutomatic 結束小組 私人小組Workbook_BeforeSave(BYVAL SaveAsUI由於布爾,取消爲布爾值) Application.Calculation = xlCalculationManual End Sub' –
vbalearner
有人可以告訴我**如何使用換行符**? – vbalearner
**是否有一個VBA代碼可以在保存之前禁用對所有打開的工作簿的自動計算並在保存後啓用它?** – vbalearner
您能不能告訴我們一些代碼? – Ian