Excel:禁用关闭时保存更改的提示

问题描述 投票:0回答:1

我有一个带有宏的 Excel 工作簿。我使用“欢迎”表来确保用户根据此处说明的技术启用宏(http://www.vbaexpress.com/kb/getarticle.php?kb_id=379)。一切工作正常,直到我使用 Power Query 扩展工作簿。我创建了一个查询来读取和转换位于同一工作簿中的 Excel 表。然后,转换后的表将加载到同一工作簿的新工作表中。现在,每当用户保存工作簿时,我都需要使用 VBA 刷新此转换后的表。我正在使用此代码进行刷新:

ThisWorkbook.Worksheets("Sheet2").ListObjects("MyTable").QueryTable.Refresh BackgroundQuery:=False

不幸的是,如果用户保存工作簿并在保存后立即关闭工作簿,即使没有进行任何更改,也会出现保存更改的提示。由于某种原因,刷新 QueryTable 会将 ThisWorkbook.Save 属性设置为 False,因此 Excel 会在关闭时提示保存未保存的更改。

如果没有进行任何更改,如何摆脱关闭时的提示?

谢谢你。

excel vba powerquery
1个回答
0
投票

在BeforeClose事件中,您可以额外保存一次(以防万一用户没有自行保存),然后将SaveChanges设置为False关闭:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    ThisWorkbook.Save
    ThisWorkbook.Close SaveChanges:=False
End Sub

如果您的行位于 BeforeSave 事件中,那应该没问题。

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    ThisWorkbook.Worksheets("Sheet2").ListObjects("MyTable").QueryTable.Refresh BackgroundQuery:=False
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.