VBA Msgbox - 没有默认按钮

时间:2014-04-09 13:33:02

标签: excel vba excel-vba

我想知道是否可以在VBA(Excel 2007)中显示Msgbox,而没有将任何按钮设置为默认值? 我有一个是\否按钮,我不希望用户点击返回或空格键并意外触发默认按钮。

任何人都知道这是否可行,以便我的表单上的任何一个按钮都没有设置为默认值,强制用户单击是或否?

If MsgBox("Message goes here", vbYesNo + vbQuestion ) = vbYes Then
    'Something
Else
    'Else
End If

3 个答案:

答案 0 :(得分:6)

另一种解决方法(除了用户窗体,或陷阱输入& 空间等)是

  1. 添加第三个按钮选项,这是一个无效的选择
  2. 将此按钮设为默认
  3. 如果选择此选项,则继续显示消息框
  4. Dim lngMsg As Long
    Do
    lngMsg = MsgBox("Message goes here (Yes or No)", vbQuestion + vbYesNoCancel + vbDefaultButton3)
    Loop While lngMsg = vbCancel
    If lngMsg = vbYes Then
    ' route a
    Else
    ' route b
    End If
    

答案 1 :(得分:2)

不幸的是,这不可能。

一种(不是特别好的)解决方法是使用UserForm对消息框进行编码。考虑到你必须维护的额外代码的好处,可能不值得做。

答案 2 :(得分:-1)

If MsgBox("Message goes here", vbYesNo + vbQuestion **+ vbDefaultButton2**) = vbYes Then
    'Something
Else
    'Else
End If