ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

关闭特定Excel文档时不提示,不保存,不影响其他打开的工作簿

2022-06-08 21:00:32  阅读:371  来源: 互联网

标签:控件 工作 Excel Application 文档 关闭 Workbook 打开


我开发的某个Excel程序(xlsm)开启时会执行某些运算,查看时表格也会发生重算或变化,但我不希望关闭时系统进行提示,也不希望文档保存这些变化。

可以利用Workbook_BeforeClose过程实现上述目的。

首先打开VBE,在左侧VBA工程管理器中打开Microsoft Excel 对象,打开ThisWorkbook对象,在右侧代码输入窗口上方选择Workbook对象,再选择BeforeClose过程。

然后输入如下代码,即可实现上述目的。

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.EnableEvents = False
If Workbooks.Count = 1 Then
Application.DisplayAlerts = False
Application.Quit
Else
ThisWorkbook.Saved = True
End If
Application.EnableEvents = True
End Sub

image

如果只打开了这一个工作簿,需要配合quit方法才能彻底退出Excel程序,否则会剩余一个无任何打开工作簿的Excel程序。
而如果有多个工作簿打开时,我们其实只想关闭这个工作簿,并不想一并关闭其他工作簿(也不知道其他工作簿是否需要保存),此时需要先判断,到底打开了多少个工作簿。

PS:无意中发现,如果一个Excel文档中只有一个按钮控件,该控件设置了点击时执行某个过程,该过程的执行并不会修改Excel。
但不同版本的Excel对点击按钮的处理似乎不同,其中2010版本点击按钮后,不改变Workbook.Saved的属性,仍视为无改动,而365版本则会视为改变(似乎是控件的位置或大小发生了变化?),关闭工作簿时就会弹出是否保存的提示。

标签:控件,工作,Excel,Application,文档,关闭,Workbook,打开
来源: https://www.cnblogs.com/blogmo/p/16357175.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有