Gary拥有一个只读工作簿,多个用户可以访问。他们可以修改单元格,但不能保存其工作。退出工作簿时,Gary希望在不通知用户只读的情况下关闭Excel,并让他们选择保存副本。

最好在关闭之前,通过使用宏修改工作簿中的Saved标志来最好地实现。此标志在内部指示工作簿是否需要保存。如果该标志为False,则Excel知道该工作簿尚未保存(所做的更改未保存)。如果您的宏将标志设置为True,则Excel将直接关闭,因为它认为所有更改都已保存。

最简单的宏如下所示:

Private Sub Workbook_BeforeClose(Cancel As Boolean)

If ThisWorkbook.ReadOnly Then     ThisWorkbook.Saved = True   End If End Sub

该宏应添加到VBA编辑器中的ThisWorkbook对象中。

这样,它将在关闭工作簿之前自动执行。该标志设置为True,并且当宏结束时,Excel继续其正常的关闭过程。由于Excel认为没有未保存的更改,因此用户看不到任何消息,并且工作簿已关闭。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(10349)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。