1、公式手動重算問題
為避免代碼執行過程中引發公式自動重算,拖慢運行速度,在代碼中設置了公式手動重算,並計划在代碼執行結束前恢復。如果在代碼執行過程中捕獲錯誤就直接退出,而沒有執行到恢復公式自動重算,應用程序一直處於公式手動重算狀態,造成很多麻煩。
Sub Test1() Application.Calculation = xlCalculationManual '公式改為手動重算 On Error Resume Next ThisWorkbook.Worksheets("工作表").Activate '工作簿內並沒有這個工作表,引發下標越界錯誤 If Err.Number <> 0 Then Exit Sub ''''''''''功能代碼'''''''''''''''''''' Application.Calculation = xlCalculationAutomatic '公式恢復為自動重算 End Sub
改進辦法捕獲錯誤之后使用改為goto 標簽 語句,直接跳轉到代碼末尾去執行恢復公式自動重算的語句工作簿
Sub Test2() Application.Calculation = xlCalculationManual '公式改為手動重算 On Error GoTo ErrorExit '捕獲錯誤直接跳轉到末尾標簽處繼續執行 ThisWorkbook.Worksheets("工作表").Activate '工作簿內並沒有這個工作表,引發下標越界錯誤 ''''''''''功能代碼'''''''''''''''''''' ErrorExit: '標簽 Application.Calculation = xlCalculationAutomatic '公式恢復為自動重算 End Sub
2.對象集合問題