End If без блока if - с отступом, но все еще не работает - PullRequest
0 голосов
/ 10 октября 2018

Я постоянно получаю ошибку «End If без Block If», хотя у меня есть End If для начала If, а также пытался сделать отступ в операторе.Что не так?

If TextBox1.Text = "" Then

    MsgBox "Please Enter Value"

Else:
    Sheets("confirmation").Range("F7").Value = ComboBox1.Value
    Sheets("confirmation").Range("F9").Value = TextBox1.Value

    For i = 20 To 1 Step -1
        Rows(i & ":33").EntireRow.Hidden = False
        Cells(13 + i, 1).Value = 20
        i = i + 1
    Exit For
    UserForm1.Hide
End If

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

Также необходимо указать, где заканчивается цикл for, с помощью next.И нужно убрать :

If ... Then
  ....
Else

  For ...
    ...
    Exit For
  Next

End if
0 голосов
/ 10 октября 2018

Удалить двоеточие после Else.

Заменить Exit For на Next.С помощью Exit For вы можете преждевременно выйти из цикла For.

Как упоминалось в комментариях @Bill Hileman, цикл For будет выполняться бесконечно, поскольку i увеличивается внутри цикла, но уменьшается в цикле Forтело.

If TextBox1.Text = "" Then

    MsgBox "Please Enter Value"

Else
    Sheets("confirmation").Range("F7").Value = ComboBox1.Value
    Sheets("confirmation").Range("F9").Value = TextBox1.Value

    For i = 20 To 1 Step -1
        Rows(i & ":33").EntireRow.Hidden = False
        Cells(13 + i, 1).Value = 20
        i = i + 1
    Next
    UserForm1.Hide
End If
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...