TL; DR: Вам нужно переместить все после Then
на новую строку.
В VBA однострочные If
-статистики имеют следующие характеристики:
- У них нет
End If
, никогда .
- Они должны быть записаны целиком одной строкой. 1
Например:
If someCondition Then DoSomething
If someCondition Then DoSomething Else DomeSomethingElse
If someCondition Then DoSomething(x) Else If anotherCondition Then DoSomething(y) Else DoSomething(z)
Тем не менее, одна строка - if
должна использоваться исключительно для коротких выписок. Как правило, не рекомендуется использовать его, когда у вас есть Else
(не говоря уже о Else If
). Таким образом, в приведенном выше блоке кода второй и третий примеры не рекомендуются. Вместо этого вы должны написать свои If
заявления, как это:
If someCondition Then
DoSomething (x)
Else If anotherCondition Then
DoSomething (y)
Else
DoSomething (z)
End If
1 Вы можете, конечно, разбить операторы на несколько строк, используя _
. Подробнее см. .