|
楼主 |
发表于 2015-7-30 21:38
|
显示全部楼层
本帖最后由 zhangshine 于 2015-7-30 22:11 编辑
有一种情况:有时候刚刚点了清除所有宏模块的按钮,又想到表格哪里需要修改,可是在删宏模块之前忘记保存一下文件。
于是,让人崩溃的问题来了——我无法撤销上一步操作,可是帮助实现各种功能的所有宏模块都已经被删掉了。于是会纠结,是从头开始做表格——还是从别的文件把模块导过来……
所以我修改了一下,在代码开始位置先执行保存文件。这样遇到上述问题时就可以关闭文件,选择不保存文件(也就相当于撤销了“清除所有宏模块”的操作)。这个思路也同样适用于其它不可撤销操作的宏命令。
以下是修改后的代码,和大家分享一下。
- Sub 按钮1_单击()
- ActiveWorkbook.Save
- Dim Sh As Worksheet
- Dim C As Object
- Dim M As Object
- On Error Resume Next
- Application.DisplayAlerts = False
- Sheets(Array("A1", "B2", "C3")).Delete
- For Each Sh In Sheets
- For Each C In Sh.Shapes
- If C.Type = 8 Or C.Type = 12 Then C.Delete
- Next
- Next
- For Each M In ThisWorkbook.VBProject.VBComponents
- If M.Type = 100 Then
- M.CodeModule.DeleteLines 1, M.CodeModule.CountOfLines
- Else
- ThisWorkbook.VBProject.VBComponents.Remove M
- End If
- Next
- End Sub
复制代码
|
|