MS Access VBA如何抑制;是否要保存更改";excel行删除对话框?

MS Access VBA如何抑制;是否要保存更改";excel行删除对话框?,excel,ms-access,vba,Excel,Ms Access,Vba,类似于中的一个问题 但是,问题是Excel会询问“是否要保存对…所做的更改?” 有没有办法强制保存更改并禁用任何消息框?我尝试使用DoCmd.SetWarnings False,但它不起作用。您需要将以下代码添加到此工作簿中 Private Sub Workbook_BeforeClose(Cancel As Boolean) ThisWorkbook.Save End Sub 如果您在Access中运行vba并访问Excel对象,只需在关闭前将工作簿(例如xlApp.ThisWor

类似于中的一个问题

但是,问题是Excel会询问“是否要保存对…所做的更改?”
有没有办法强制保存更改并禁用任何消息框?我尝试使用DoCmd.SetWarnings False,但它不起作用。

您需要将以下代码添加到此工作簿中

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    ThisWorkbook.Save
End Sub

如果您在Access中运行vba并访问Excel对象,只需在关闭前将工作簿(例如
xlApp.ThisWorkbook.save
)保存在代码中即可

您可以使用Application.DisplayAlerts=False,也可以使用Access中的xlApp.DisplayAlerts=False来抑制警告消息,但如果工作簿已保存,则不必执行此操作。@GrahamAnderson起初我也这么认为,但在excel中,如果您对工作簿进行新编辑,然后在不保存的情况下关闭工作簿,则使用
Application.DisplayAlerts=False将不起作用。我认为这是因为Excel在宏运行后将
DisplayAlerts
设置为true,并且由于
Workbook\u BeforeClose
完成而不保存(然后自动将DisplayAlerts设置为true),系统会提示您保存更改,这取决于您的操作方式,您可以在DisplayAlerts关闭的情况下运行宏时关闭工作簿,因此不会收到警告。通常,当一本书中的宏打开和关闭其他工作簿时,您会执行此操作。当然,
workbook.close
方法有一个关闭而不保存的选项,当您将保存选项设置为false时,它不会发送任何消息。