大家知道大多數的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 Next
With Sheet1.Range("A1:A10")
.SpecialCells(xlCellTypeFormulas, xlErrors) = 0
MsgBox WorksheetFunction.Sum(.Cells)
End With
On Error GoTo 0
End Sub
或者先進行一個錯誤檢查,并給出提示:
Sub CheckForErrors()
Dim rErrCheck As Range
On Error Resume Next
With Sheet1.Range("A1:A10")
Set rErrCheck = .SpecialCells(xlCellTypeFormulas, xlErrors)
If Not rErrCheck Is Nothing Then
MsgBox "指定的單元格中包含錯誤!"
Application.Goto .SpecialCells(xlCellTypeFormulas, xlErrors)
Else
MsgBox WorksheetFunction.Sum(.Cells)
End If
End With
On Error GoTo 0
End Sub