Member 13658733 Ответов: 1

Почему эта программа игнорирует "exit sub"


Когда я выполняю этот код.На самом деле он игнорирует суб-выход после 1-го msgbox и отображает следующий msgbox независимо от того, является ли условие истинным или ложным. Пожалуйста, помогите мне с ответом


Sub Insertnex()
Dim Name As String
Dim State As String
Dim Newdate As Date
Dim ButtonClicked As VbMsgBoxResult

GuessAgain:
Name = InputBox("Please enter the name")
Sheet1.Activate

On Error GoTo Namenotfound
Range("B3:B15").Find(Name).Select
On Error GoTo 0

Name = ActiveCell.Value
State = ActiveCell.Offset(0, 1).Value
On Error GoTo InvalidDate

Date = ActiveCell.Offset(0, 2).Value
MsgBox Name & " stays in " & State & " she is staying there since " & Date

Exit Sub

Namenotfound:
ButtonClicked = MsgBox(Name & " was not found in the list.")
 
If ButtonClicked = vbRetry Then Resume GuessAgain

Exit Sub

InvalidDate:
MsgBox Date & "Was in wrong formate"


End Sub


Что я уже пробовал:

Я пытался выяснить этот вопрос, но я не в состоянии решить эту проблему

1 Ответов

Рейтинг:
2

Maciej Los

Чтобы иметь возможность получить vbRetry код, который вам нужно правильно настроить MsgBox, например:

Sub Test()
Dim ButtonClicked As Long

ButtonClicked = vbRetry
Do While ButtonClicked = vbRetry
    ButtonClicked = MsgBox("Click Cancel to exit the loop", vbRetryCancel, "Not found...")
Loop

End Sub


Не стесняйтесь изменять код в соответствии с вашими потребностями.


Member 13658733

Спасибо за Ваше предложение Maciej Los, но я хочу понять, почему мой Exit Sub не работает после 1-го msgbox.

Maciej Los

Что ж... лучший способ выяснить, почему ваш код не работает должным образом, - это использовать отладчик. Как же так? Используйте [F8] вместо [F5]. Это даст вам возможность решить вашу проблему, выполнив код строка за строкой.
Овации,
Мацей