VBA MsgBox Да / Нет - PullRequest
       12

VBA MsgBox Да / Нет

0 голосов
/ 15 декабря 2018

Когда я выбираю Нет в моем окне сообщения, документ все еще закрывается.Я хочу, чтобы он оставался открытым, когда я выбираю нет.Я не уверен, как это сделать.Спасибо.

Option Explicit

Sub b()

 'declares docX as a document and stores it
  Dim docX As Documents
 'opens the document file
  Application.Documents.Open FileName:="C:\Users\johnr\OneDrive\Documents\CIS 208 VBA\Rimando_Input_Box.docm"

'prompts the user to select either Yes or No
 MsgBox Prompt:="Close document?", _
     Buttons:=vbYesNo
'If the user selects the Yes button then the document closes without making save changes.
 If vbYes Then
     Application.ActiveDocument.Close SaveChanges:=wdPromptToSaveChanges
 Else
     'Keep the document open
 End If

End Sub

1 Ответ

0 голосов
/ 15 декабря 2018

Это было бы потому, что вы не возвращали значение вашего msgbox в переменную.

В этом случае я бы предпочел не использовать переменную, а просто простое выражение Select Case:

    Select Case MsgBox(Prompt:="Close document?", Buttons:=vbYesNo)
    Case vbYes
         Application.ActiveDocument.Close SaveChanges:=wdPromptToSaveChanges
    Case vbNo
         'Keep the document open
    End Select

Но я заметил еще одну проблему, вы объявили docX как тип documents , вы, вероятно, хотели использовать Dim docX As Document (нет s).А потом я также заметил, что вы даже не использовали переменную.

См. Также следующее, чтобы исправить эти проблемы:

Sub b()

    Dim docX As Document
    Set docX = Application.Documents.Open( _
           Filename:="C:\Users\johnr\OneDrive\Documents\CIS 208 VBA\Rimando_Input_Box.docm")

    Select Case MsgBox(Prompt:="Close document?", Buttons:=vbYesNo)
    Case vbYes
         docX.Close SaveChanges:=wdPromptToSaveChanges
    Case vbNo
         'Keep the document open
    End If

End Sub
...