Как не получить ошибку времени выполнения «13»: несоответствие типов при итерации строк? - PullRequest
0 голосов
/ 20 июня 2019

Я пытаюсь пройти по столбцу и увеличивать каждое значение на единицу, пока оно не станет пустым, но я получаю ошибку времени выполнения:

Ошибка времени выполнения '13': Несоответствие типов

Пожалуйста, помогите.

Private Sub CommandButton1_Click()

    Start = Val(Range("H2").Value)
    LastRow = Cells(Rows.Count, 8).End(xlUp).Row

    For Row = 2 To LastRow
        If Not IsEmpty(Range("H" & Row)) Then
            Range("H" & Row).Value = Range("H" & Row).Value + 1
        End If
    Next

End Sub

1 Ответ

2 голосов
/ 20 июня 2019

Вот некоторый непроверенный код, который должен решить вашу проблему.То, как вы устанавливаете диапазон, немного странно.Попробуйте это.

Dim ws As Worksheet: Set ws = ActiveSheet 'i assume this is correct

Dim r As Long
Dim cNumber As Long
cNumber = Range("h2").Column 'just for illustration

For r = 2 To ws.UsedRange.Cells(ws.UsedRange.Rows.Count, 1).Row


    If Not IsEmpty(ws.Cells(r, cNumber)) Then

        If IsNumeric(ws.Cells(r, cNumber)) Then
            ws.Cells(r, cNumber).Value = ws.Cells(r, cNumber).Value + 1
        Else
            'cell is not empty but does not have a numeric value
            'Stop
        End If

    Else
            Exit For 'ends the loop


    End If

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