寵物集市-寵物集市華東、華南、華北排行榜一覽表
749
2025-03-31
避免Excel工作表函數在VBA中產生運行時錯誤
大家知道大多數的Excel工作表函數可以用在VBA中,通過下面的方法來調用,例如對A1:A10單元格求和:
Sub Sum1()MsgBox WorksheetFunction.Sum(Sheet1.Range("A1:A10"))End Sub
或:Sub Sum2()MsgBox Application.Sum(Sheet1.Range("A1:A10"))End Sub
但是如果在單元格中包含錯誤,例如上例中的A1:A10區域包含一個“#DIV/0!”錯誤,運行上述代碼后將產生運行時錯誤。例如出現類似下圖的提示:
為避免出現這樣的錯誤,我們可以將單元格中的錯誤用數值“0”取代。用下面的代碼:
Sub ReplaceErrors()On Error Resume NextWith Sheet1.Range("A1:A10").SpecialCells(xlCellTypeFormulas, xlErrors) = 0MsgBox WorksheetFunction.Sum(.Cells)End WithOn Error GoTo 0End Sub
或者先進行一個錯誤檢查,并給出提示:
Sub CheckForErrors()Dim rErrCheck As RangeOn Error Resume NextWith Sheet1.Range("A1:A10")Set rErrCheck = .SpecialCells(xlCellTypeFormulas, xlErrors)If Not rErrCheck Is Nothing ThenMsgBox "指定的單元格中包含錯誤!"Application.Goto .SpecialCells(xlCellTypeFormulas, xlErrors)ElseMsgBox WorksheetFunction.Sum(.Cells)End IfEnd WithOn Error GoTo 0End Sub
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。