MsgBoxResult.Yes=重新启动程序,MsgBoxResult.no=关闭程序帮助VBA

MsgBoxResult.Yes=重新启动程序,MsgBoxResult.no=关闭程序帮助VBA,vba,msgbox,Vba,Msgbox,我希望我的程序向用户显示一个msgbox,告诉用户如果bank=0或200,您是否想再试一次。用户选择是或否。以下是我的代码: If bank = 0 Or 200 Then MsgBox("Would you like to try again?", MsgBoxStyle.YesNo, vbYesNo) If MsgBoxResult.Yes Then Application.Restart() ElseIf M

我希望我的程序向用户显示一个msgbox,告诉用户如果bank=0或200,您是否想再试一次。用户选择是或否。以下是我的代码:

    If bank = 0 Or 200 Then
        MsgBox("Would you like to try again?", MsgBoxStyle.YesNo, vbYesNo)
        If MsgBoxResult.Yes Then
            Application.Restart()
        ElseIf MsgBoxResult.No Then
            Me.Close()
            End If
我的问题是,当有人选择“否”时,程序会忽略我。请关闭并重新启动程序


感谢您的帮助……

免责声明:我的回答可能是错误的,因为我不是VB开发人员

据我所知,MsgBoxResult.Yes和MsgBoxResult.No是常量

dim MsgBoxResultQuery As MsgBoxResult

If bank = 0 Or 200 Then
    MsgBoxResultQuery = MsgBox("Would you like to try again?", MsgBoxStyle.YesNo, vbYesNo)
    If MsgBoxResultQuery = MsgBoxResult.Yes Then
        Application.Restart()
    ElseIf MsgBoxResultQuery = MsgBoxResult.No Then
        Me.Close()
    End If
MsgBoxResult.Yes似乎在内部定义为某种非零整数。因此,第一个IF查询总是成功的

您必须获取MsgBox的返回值,其中包含用户单击的结果。然后将此返回值与常量进行比较

dim MsgBoxResultQuery As MsgBoxResult

If bank = 0 Or 200 Then
    MsgBoxResultQuery = MsgBox("Would you like to try again?", MsgBoxStyle.YesNo, vbYesNo)
    If MsgBoxResultQuery = MsgBoxResult.Yes Then
        Application.Restart()
    ElseIf MsgBoxResultQuery = MsgBoxResult.No Then
        Me.Close()
    End If

重新启动程序是什么意思?我不认为Windows进程被终止,然后再次启动。可能只有表单被重新打开或其他什么。重新启动的意思是当用户选择“否”程序时,它会忽略我。关闭并运行应用程序。因此,重新启动…它工作得非常好!。我打算如何运行MsgBox。谢谢!