在我的msgbox中循环 - 错误

时间:2016-12-20 10:37:34

标签: excel vba excel-vba

我遇到以下代码问题:

MsgBox

我想在以下问题的答案为NO时从头开始重复MsgBox "Vous devez sélectionner une valeur égale à 1, 2 ou 3" & _ vbCrLf & vbCrLf & "Désirez-vous continuer ?", vbYesNo + vbExclamation, "Erreur"

DateTime

它说:

  

“没有做错误循环”

你能帮忙吗?

谢谢,

3 个答案:

答案 0 :(得分:2)

你想要开始一个只有在条件满足后才会结束的循环。

尝试以下方法:

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

答案 1 :(得分:1)

感谢大家的帮助,这是我需要帮助的最终代码。

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

答案 2 :(得分:0)

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