2016-02-27 19 views
-3

我試圖弄清楚如何使用vba代碼來選擇消息框中的no按鈕。我有一個工作簿可以打開和關閉另一個工作簿。工作簿關閉時會彈出一個消息框,即「選擇是或否」。用戶通常手動將不得不單擊否。有沒有辦法做到這一點與代碼?在消息框中選擇無按鈕的代碼

這是第一個用其中的消息框打開第二個工作簿的工作簿。

Option Explicit 

Private Sub DONEBTN_Click() 
Dim WRKBK2 As Workbook 
Dim Name As String 

Name = "Someones Name" 

Set WRKBK2 = Workbooks.Open("C:\Second Workbook.xlsm")   

WRKBK2.Sheets(1).Range("H7").Value = Name     'Name   

WRKBK2.SaveAs Filename:="C:\New File Name For Workbook2.xlsm", _ 
FileFormat:=52, CreateBackup:=False, local:=True 

Application.DisplayAlerts = False 
WRKBK2.Close 
Application.ScreenUpdating = True 
End Sub 

這是位於第二個工作簿是的ThisWorkbook私人小組Workbook_BeforeClose下的代碼(取消正如布爾)

Option Explicit 
Private Sub Workbook_BeforeClose(Cancel As Boolean) 
Dim MSG1 As String 

MSG1 = MsgBox("Select yes or no?", vbYesNo, "Message Box") 

If MSG1 = vbYes Then 

' Code does something 

Else 

ThisWorkbook.Save 

ThisWorkbook.Close 


End If 
End Sub 
+0

在創建此提示的工作簿關閉中是否存在事件?爲什麼不刪除它?或者你在談論保存對話框? –

+0

請說明您希望選擇哪個特定的消息框。通常您可以發佈代碼,工作簿或至少一張關於您所問的問題的圖片。 –

+0

@ Cody G,無法刪除它,因爲當用戶以後打開文件時,他們應該能夠根據他們的情況選擇是或否按鈕。 – Geoff

回答

0

如果你指的是「保存工作簿?」對話框中,使用Workbook.Close方法的SaveChanges選項或Application.DisplayAlerts = False。以下示例顯示了兩者。

Application.DisplayAlerts = False 
Workbook("Sample Workbook.xlsx").Close SaveChanges:=False 'Or use .True to save the workbook before closing 
Application.DisplayAlerts = True 
相關問題