Это подчеркивание вводит в заблуждение:
If .Range("C" & i).Value = "No Approval Required" Then _
.Range("F" & i).Value = ""
Это выглядит как If...Then...End If
блочный синтаксис, но это не так.Продолжение строки _
делает строку логического кода фактически такой:
If .Range("C" & i).Value = "No Approval Required" Then .Range("F" & i).Value = ""
И это совершенно законно.
Вы можете продолжить ту же логическую строкукода с выражением Else
:
If .Range("C" & i).Value = "No Approval Required" Then .Range("F" & i).Value = "" Else ...
И это все равно будет законным.
Однако, что вы не можете сделать, это:
If .Range("C" & i).Value = "No Approval Required" Then .Range("F" & i).Value = ""
Else ....
Потому что Else
принадлежит другому синтаксическому выражению: оператор If
над ним завершен;следующий оператор, начинающийся с Else
, должен быть недопустимым, поскольку в нем нет оператора If
.
Если вы хотите использовать оператор Else
в отдельной строке кода, то вам нужнопереключиться на блочный синтаксис - это означает, что ключевое слово Then
находится там, где заканчивается оператор If
:
If .Range("C" & i).Value = "No Approval Required" Then
.Range("F" & i).Value = ""
Else
'....
End If