1004 Ячейки не найдены - Обработка ошибок - PullRequest
1 голос
/ 18 марта 2019

Может ли кто-нибудь посоветовать, как обрабатывать ошибку «ячейки не найдены» с помощью следующего кода.Это часть большей подпрограммы, которая часто может не возвращать никаких значений, однако обработка ошибки следующим образом (которая работает для многих других моих сценариев) все еще возвращает «Ошибка времени выполнения« 1004 »: ячейки не найдены».Что я делаю не так?

On Error GoTo Error_Exit_3
    Range("Q:Q").SpecialCells(xlCellTypeFormulas, 16).EntireRow.Delete
Error_Exit_3:

Ответы [ 3 ]

4 голосов
/ 18 марта 2019

Что бы я сделал:

Dim RowsWithFormulas As Long

On Error Resume Next
RowsWithFormulas = Range("Q:Q").SpecialCells(xlCellTypeFormulas, 16).Rows.Count
On Error GoTo 0
If RowsWithFormulas > 0 Then
    Range("Q:Q").SpecialCells(xlCellTypeFormulas, 16).EntireRow.Delete
End If
3 голосов
/ 18 марта 2019

Вы также можете установить это как диапазон:

Sub t()
Dim cellsWithErroringFormulas As Range

On Error Resume Next
Set cellsWithErroringFormulas = Range("Q:Q").SpecialCells(xlCellTypeFormulas, 16)
On Error GoTo 0

If cellsWithErroringFormulas Is Nothing Then
   ' Do whatever
    MsgBox ("No formulas result in an error!")
    Exit Sub
ElseIf cellsWithErroringFormulas.Rows.Count > 0 Then
    cellsWithErroringFormulas.SpecialCells(xlCellTypeFormulas, 16).EntireRow.Delete
    ' Now, if you call `cellsWithErroringFormulas` again, it will error since you removed all those references.
    ' So to be explicit, let's clear that variable.
    Set cellsWithErroringFormulas = Nothing
End If

End Sub

Я подправил имя переменной только потому, что технически вы ищете не строки с формулами, а ячейки с формулами, которые приводят к ошибке. Здесь немного неуклюже, поэтому переименовывайте по желанию. Просто хотел указать на это.

Кроме того, поскольку я не знаю, что вы планируете делать дальше, я добавил Set cellsWithErroringFormulas = Nothing, поскольку мы не можем использовать эту ссылку после удаления ошибочных строк. Возможно, вам это и не нужно, но я просто хотел включить это, чтобы указать на это.

0 голосов
/ 18 марта 2019

Пожалуйста, проверьте ссылку ниже. его уже ответили на этом форуме. Также, пожалуйста, ознакомьтесь с правилами этого форума ..:)

1004 Ошибка: ячейки не найдены, простое решение?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...