#excel #vba #excel-2016
#excel #vba #excel-2016
Вопрос:
Я написал код VBA для своего файла Excel. В коде VBA я должен удалить ячейки с формулой. Мой код работает нормально, если он обнаружил хотя бы одну ячейку с формулой, но если такой ячейки нет, тогда отображается ошибка — ошибка времени выполнения ‘1004’.
мой код
Dim n As Integer
n = Sheets("Pay_Slip").Range("B11:AO510").SpecialCells(xlCellTypeFormulas, 23).Count
If n > 0 Then
Sheets("Pay_Slip").Range("B11:AO510").Select
Selection.SpecialCells(xlCellTypeFormulas, 23).Select
Selection.ClearContents
End If
Пожалуйста, помогите мне найти ошибку.
Ответ №1:
Вы можете перехватить условие отсутствия ячеек формулы:
Sub qwerty()
Dim n As Long
On Error Resume Next
n = Sheets("Pay_Slip").Range("B11:AO510").SpecialCells(xlCellTypeFormulas, 23).Count
If Err.Number > 0 Then
MsgBox "no formula cells"
Exit Sub
End If
On Error GoTo 0
If n > 0 Then
Sheets("Pay_Slip").Range("B11:AO510").Select
Selection.SpecialCells(xlCellTypeFormulas, 23).Select
Selection.ClearContents
End If
End Sub
Ответ №2:
Для устранения возможности отсутствия формулы и добавления других возможностей для улучшения
Sub Demo()
Dim rFormula as Range
On Error Resume Next
Set rFormula = Workheets("Pay_Slip").Range("B11:AO510").SpecialCells(xlCellTypeFormulas, 23)
On Error GoTo 0
If Not rFormula Is Nothing Then
rFormula.ClearContents
End If
End Sub