Почему мой цикл VBA дает мне «Ошибка времени выполнения 13: несоответствие»? - PullRequest
0 голосов
/ 28 октября 2019

Ранее я создал функцию удаления, которая просматривает все листы в моей книге и ищет определенное значение в столбце «C». Я обновил свою рабочую книгу, переставив рабочие листы, чтобы конечному пользователю было легче переходить между листами.

Функция отлично работает для всех листов со значениями, пока не достигнет листов отчетности. Когда отчеты открыты, всплывает «Ошибка времени выполнения: 13 несоответствие». Это очень странно, потому что, когда я пытаюсь запустить ту же функцию, что и моя предыдущая книга, я не получаю «Ошибки времени выполнения», только то, что удаление сработало.

Как исправить этот код, чтобы не запускать ошибку времени выполнения?

Private Sub CommandButton3_Click()

Application.ScreenUpdating = False

Dim ws As Worksheet
Dim i As Long
Dim IDRef As String

IDRef = InputBox("Please enter the selected ID.")
If IDRef = vbNullString Then Exit Sub

For Each ws In ActiveWorkbook.Worksheets
    For i = ws.Range("C" & ws.Rows.Count).End(xlUp).Row To 2 Step -1

        With ws.Cells(i, "C")
            If .Value = IDRef Then .EntireRow.Delete
        End With

    Next i
Next ws

Application.ScreenUpdating = True
Application.CutCopyMode = False

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