MsgBox Yes/No Excel VBA
just use
question = "Unfortunately, the Database has no sources regarding " & Category & " in " & country & ". Would you like to broaden your search and see all sources regarding " & country & "?."
would be enough.
In addition the if function can be
If Msgbox(Question) = vbYes then
...
End If
Don't call MsgBox twice
The MsgBox
function returns a vbMsgBoxResult
value, which is an enum (and should be a Long
integer, not an Integer
).
You're calling it twice:
Dim question As Integer question = MsgBox("Unfortunately, the Database has no sources regarding " & Category & " in " & country & ". Would you like to broaden your search and see all sources regarding " & country & "?", vbYesNo + vbQuestion, "Empty Sheet") MsgBox question
Once to assign question
, and once to display question
- which at that point is going to contain either vbYes
(6) or vbNo
(7).
I would declare question As vbMsgBoxResult
to avoid ambiguities and get autocomplete/IntelliSense when you later use it. Actually, result
or answer
would be a better identifier - "question" sounds like the question itself, not the user's response.
Remove MsgBox question
. This is unnecessarily creating a second message box populated with the value of question (6 or 7 depending on whether you chose yes or no, as eg vbYes has the return value 6).