循环在我的msgbox – 错误

我遇到以下代码的问题:

Sub Option_choice() Dim Choice_box As String Do Choice_box = InputBox("Quel état souhaitez-vous restituer ?" & _ vbCrLf & "Entrez la valeur 1, 2 ou 3" & _ vbCrLf & vbCrLf & vbTab & "1 - Bilan" & _ vbCrLf & vbTab & "2 - Compte de résultat" & _ vbCrLf & vbTab & "3 - Hors bilan", vbQuestion, "Entrez la valeur 1, 2 ou 3") Select Case Choice_box Case "1" MsgBox ("Bilan") Case "2" MsgBox ("Compte de résultat") Case "3" MsgBox ("Hors bilan") Case Else MsgBox "Vous devez sélectionner une valeur égale à 1, 2 ou 3" & _ vbCrLf & vbCrLf & "Désirez-vous continuer ?", vbYesNo + vbExclamation, "Erreur" If vbYes Then Loop ElseIf vbNo Then MsgBox "Fin de l'opération, aucun état n'a été généré", vbInformation, "Fin du programme" Else 'rien End If End Select End Sub 

下面的问题的答案是NO我只想从头开始重复MsgBox

 MsgBox "Vous devez sélectionner une valeur égale à 1, 2 ou 3" & _ vbCrLf & vbCrLf & "Désirez-vous continuer ?", vbYesNo + vbExclamation, "Erreur" 

它说:

“错误循环没有做”

你能帮忙吗?

谢谢,

吉恩

你想开始一个循环,只有当条件满足时才会结束。

尝试下面的内容:

 Sub Option_choice() Dim Choice_box As String Do Choice_box = InputBox("Quel état souhaitez-vous restituer ?" & _ vbCrLf & "Entrez la valeur 1, 2 ou 3" & _ vbCrLf & vbCrLf & vbTab & "1 - Bilan" & _ vbCrLf & vbTab & "2 - Compte de résultat" & _ vbCrLf & vbTab & "3 - Hors bilan", vbQuestion, "Entrez la valeur 1, 2 ou 3") Select Case Choice_box Case "1" MsgBox ("Bilan") Exit Do Case "2" MsgBox ("Compte de résultat") Exit Do Case "3" MsgBox ("Hors bilan") Exit Do Case Else If MsgBox("Vous devez sélectionner une valeur égale à 1, 2 ou 3" & vbCrLf & vbCrLf & "Désirez-vous continuer ?", vbYesNo + vbExclamation, "Erreur") = vbYes Then 'Nothing, it will loop anyway ElseIf vbNo Then MsgBox "Fin de l'opération, aucun état n'a été généré", vbInformation, "Fin du programme" Exit Sub End If End Select Loop End Sub 

感谢大家的帮助,这是我最终的代码给那些需要它的人。

 Sub Option_choice() Dim Choice_box, File_Choice As String Dim Rep_Choice As Integer Do Choice_box = InputBox("Quel état souhaitez-vous restituer ?" & _ vbCrLf & "Entrez la valeur 1, 2 ou 3" & _ vbCrLf & vbCrLf & vbTab & "1 - Bilan" & _ vbCrLf & vbTab & "2 - Compte de résultat" & _ vbCrLf & vbTab & "3 - Hors bilan", vbQuestion, "Entrez la valeur 1, 2 ou 3") Select Case Choice_box Case "" 'if cancelled MsgBox "Fin de l'opération, aucun état n'a été généré", vbInformation, "Fin du programme" Exit Sub Case "1" MsgBox ("Bilan") File_Choice = "Bilan" MsgBox ("Filechoice = " & File_Choice) Exit Do Case "2" MsgBox ("Compte de résultat") File_Choice = "Compte de résultat" MsgBox ("Filechoice = " & File_Choice) Exit Do Case "3" MsgBox ("Hors bilan") File_Choice = "Hors bilan" MsgBox ("Filechoice = " & File_Choice) Exit Do Case Else Rep_Choice = MsgBox("Vous devez sélectionner une valeur égale à 1, 2 ou 3" & _ vbCrLf & "Désirez-vous continuer ?", vbYesNo + vbExclamation, "Erreur") If Rep_Choice = vbNo Then MsgBox "Fin de l'opération, aucun état n'a été généré", vbInformation, "Fin du programme" Exit Do Else 'loop End If End Select Loop End Sub 

吉恩

 Sub Option_choice() Dim Choice_box As String Dim MB_result As Integer Do Choice_box = InputBox("Quel état souhaitez-vous restituer ?" & _ vbCrLf & "Entrez la valeur 1, 2 ou 3" & _ vbCrLf & vbCrLf & vbTab & "1 - Bilan" & _ vbCrLf & vbTab & "2 - Compte de résultat" & _ vbCrLf & vbTab & "3 - Hors bilan", vbQuestion, "Entrez la valeur 1, 2 ou 3") Select Case Choice_box Case "1" MsgBox ("Bilan") Case "2" MsgBox ("Compte de résultat") Case "3" MsgBox ("Hors bilan") Case Else MB_result = MsgBox("Vous devez sélectionner une valeur égale à 1, 2 ou 3" & _ vbCrLf & vbCrLf & "Désirez-vous continuer ?", vbYesNo + vbExclamation, "Erreur") If MB_result = vbNo Then MsgBox "Fin de l'opération, aucun état n'a été généré", vbInformation, "Fin du programme" Exit Do End If End Select Loop End Sub