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

时间:2015-10-25 03:35:29

标签: vba msgbox

我希望我的程序向用户显示一个msgbox,说明"你想再试一次吗?#34;如果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

我的问题是当有人选择"否"该程序忽略了" Me.Close"而是重新启动该程序。

感谢帮助...

1 个答案:

答案 0 :(得分:0)

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

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

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