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

MsgBoxResult.Yes=restart program and MsgBoxResult.no=close program Help VBA

我希望我的程序向用户显示一个消息框,上面写着 "Would you like to try again" 如果 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

我的问题是,当有人选择 "No" 时,程序会忽略 "Me.Close",而是重新启动程序。

感谢帮助...

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

据我了解,MsgBoxResult.YesMsgBoxResult.No常量

MsgBoxResult.Yes 似乎在内部定义为某种非零整数。所以第一个 IF 查询总是成功。

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

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