Страницы: 1
RSS
Условие If... then выдает ошибку. Неверный синтаксис?
 
Добрый день,
что-то запуталась в трех соснах.
Макрос ругается на предмет End If, мол нету для него IF, хотя вроде бы для каждого есть..
Это кусок кода, без него макрос работает нормально. Взгляните плиз, где ошибка?


Код
...
If checkcolumn Then 'если стоит чекбокс - то проверяются 3 нижестоящие условия. Если Нет- то проверку пропускаем.
        If r1.Column <> 5 Then MsgBox "error r1", vbCritical
          Exit Sub 
        End If
        If r2.Column <> 6 Then MsgBox "error r2", vbCritical
          Exit Sub 
        End If
        If r3.Column <> 7 Then MsgBox "error r13", vbCritical
           Exit Sub 
        End If       
End If
'если соблюдены все 3 условия- выполняется код ниже. если любое из 3 не соблюдено- показываем ошибку и выходим. 
...

Изменено: ЕжеВика - 11.12.2018 16:36:12
 
ЕжеВика, перевод строки имеет значение

Код
If checkcolumn Then 'если стоит чекбокс - то проверяются 3 нижестоящие условия. Если Нет- то проверку пропускаем.
        If r1.Column <> 5 Then 
          MsgBox "error r1", vbCritical
          Exit Sub
        End If
…...
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
ЕжеВика , перевод строки имеет значение
БМВ Спасибо!  Работает.
 
ЕжеВика, после Then нужно писать все в одну строку ( что относится к Then) или все с новой строки. Если нет ELSE. :)
П.С. если все в одну строку то end if не нужно.
Код
If r1.Column <> 5 Then MsgBox "error r1", vbCritical: Exit Sub
Изменено: V - 11.12.2018 16:51:42
 
ЕжеВика, Да, как написано выше, для таких конструкций можно употреблять иную запись , но вот это не сильно экономит время и объем при написании, а вот читаемость может пострадать + не все так можно записывать а значит лучше классический вариант.
Изменено: БМВ - 11.12.2018 16:56:32
По вопросам из тем форума, личку не читаю.
 
Цитата
V написал:
Если нет ELSE.
Код
If 0 <> 0 Then Else MsgBox "Ой!"

:D
 
RAN, я имел ввиду такой вариант. :)
Код
If r1.Column <> 5 Then MsgBox "error r1", vbCritical: Exit Sub
Else
    MsgBox "Ой!"
end if
End If

П.С. Вот не хотел писать про ELSE. :)
 
Цитата
V написал: или все с новой строки. Если нет ELSE
Почеу же?
Код
If a = 1 Then b=2 Else: b = 3
 
Цитата
vikttur написал:
b=2 Elle: b = 3
Виктор,   :D тогда уж сразу

По вопросам из тем форума, личку не читаю.
 
Нет, тогда будет логическое ИЛИ :)
Подправил.
 
Цитата
V написал:
RAN , я имел ввиду такой вариант.
Такой вариант вообще не работает.

Вить, зачем двоеточие? Оно, правда, работать вроде не мешает, но и смысла в нем нет.
 
По привычке. Часто короткие строки и логически связанные пишу в одной строке.
Страницы: 1
Наверх