VBA Msgbox – 没有默认button

我想知道是否可以在VBA(Excel 2007)中显示Msgbox,没有任何button被设置为默认值? 我有一个yes \ nobutton,我不希望用户打回车或空格键,并意外触发一个默认的button。

任何人都知道这是否可能,以便我的表单上的button都设置为默认,强制用户点击是或否?

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

不幸的是,这是不可能的。

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

另一个解决方法(除UserForm,或陷阱input空间等)是

  1. 添加一个无效选项的第三个button选项
  2. 将此button设置为默认值
  3. 如果select此选项,请继续显示消息框

 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