VBA Msgbox-无默认按钮
我想知道是否可以在VBA(Excel 2007)中显示Msgbox,而不将任何按钮设置为默认值? 我有一个“是\否”按钮,我不希望用户点击回车键或空格键而意外触发默认按钮 有人知道这是否可行,这样我的表单上的两个按钮都不会设置为默认值,从而强制用户单击“是”或“否”吗VBA Msgbox-无默认按钮,vba,excel,Vba,Excel,我想知道是否可以在VBA(Excel 2007)中显示Msgbox,而不将任何按钮设置为默认值? 我有一个“是\否”按钮,我不希望用户点击回车键或空格键而意外触发默认按钮 有人知道这是否可行,这样我的表单上的两个按钮都不会设置为默认值,从而强制用户单击“是”或“否”吗 If MsgBox("Message goes here", vbYesNo + vbQuestion ) = vbYes Then 'Something Else 'Else End If 不,不幸的是,这是不
If MsgBox("Message goes here", vbYesNo + vbQuestion ) = vbYes Then
'Something
Else
'Else
End If
不,不幸的是,这是不可能的 一个(不是特别好的)解决方法是使用UserForm对消息框进行编码。考虑到您必须维护的额外代码带来的好处,可能不值得这么做。另一种解决方法(除了UserForm或trapping Enter&Space等)是
我也这么想。是的,我同意除非绝对必要,否则使用UserForm是过分的。谢谢。我确实这样做了,最后添加了一个“取消”按钮,效果也很好。所以这是一个被接受的答案。顺便说一句,好主意@brettdj
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
If MsgBox("Message goes here", vbYesNo + vbQuestion **+ vbDefaultButton2**) = vbYes Then
'Something
Else
'Else
End If