Проверка на наличие отрицательных значений подряд - PullRequest
2 голосов
/ 30 января 2020

Я пытаюсь использовать следующий код vba для проверки отрицательных значений в строке 1 рабочей таблицы Excel с номерами 1, 2, -3, 4, 5, 6. Макрос должен выбрать значение -3 и на этом остановиться. К сожалению, это не работает. Происходит ошибка, сообщающая мне End If without block If. Не вижу своей ошибки.

Sub SelectNegativeValue()
    Dim Cell As Range

    For Each Cell In Range("1:1")
        If Cell.Value < 0 Then Cell.Select
            Exit For
        End If
    Next Cell
End Sub

Ответы [ 2 ]

3 голосов
/ 30 января 2020

Макрос должен выбрать значение «-3» и остановиться на этом.

Вам необходимо переместить Cell.Select на следующую строку ... непосредственно перед Exit For

Dim Cell As Range
For Each Cell In Range("1:1")
    If Cell.Value < 0 Then
        Cell.Select
        Exit For
    End If
Next Cell
2 голосов
/ 30 января 2020

Научитесь правильно делать отступы для своего кода, и вы увидите свои ошибки.

Если у вас есть оператор If, в котором код после Then находится в одной строке, это означает, что это одна строка * Оператор 1005 *, которому не разрешено иметь End If.

End If, предназначен для многострочных операторов If, которым не разрешено иметь код после Then в той же строке:

Sub SelectNegativeValue()
    Dim Cell As Range
    For Each Cell In Range("1:1")
        If Cell.Value < 0 Then 
            Cell.Select
            Exit For
        End If
    Next Cell
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...