На первый взгляд, If
s выглядят хорошо, но я заметил, что оба Do
s пропускают Loop
.
Это должно выглядеть так:
Do While varHRA < salary
'Do Stuff
Loop
Exit Do
используется для выхода из цикла до того, как условие за While
будет истинным, но вам всегда нужно ключевое слово Loop
.
Если проблема не устранена, опубликуйте точное сообщение об ошибке.
EDIT:
Я только что попытался воспроизвести вашу проблему в VBA в MS Access (на этом компьютере не установлен Excel, только Access):
Public Function Test()
If 1 = 0 Then
Do While 1 = 0
Stop
Exit Do
Else
Stop
End If
End Function
Этот простой фрагмент кода выдает мне то же самое сообщение об ошибке, которое вы получили:
Ошибка компиляции: иначе без If
Когда я заменяю Exit Do
на Loop
, ошибка исчезает и код компилируется.
Итак, вы должны заменить Exit Do
на Loop
в вашем коде.