[算表] VBA如何自动储存所有开启中Excel档案

楼主: moodyblue   2018-01-06 15:45:38
VBA如何自动储存所有开启中Excel档案
网志图文版:
http://www.b88104069.com/archives/4273
之前有文章分享过编写VBA自动储存Excel档案或另存备份,虽然程式的设计立意良好,也
达到预期效果,但其实存在两个缺陷:其一、会希望这个程式是真正“自动”执行的,只
要电脑开启任何一个Excel档案,便会启动此功能;其二、工作场合中,常常电脑是同时
开启很多档案,会希望这些开启中的一切档案都可以自动储存。针对这两点,需要进一步
完善VBA,在此介绍如何完善成终极版的自动储存功能:
一、录制宏时,下面有个“将宏储存在”,选择“个人宏活页簿”。
二、宏录好之后,“Alt+F11”开启VBA编辑环境,在“专案-VBAProject”视窗中会多
一个“PERSONAL.XLSB”,这是Excel隐藏的活页簿,只要透过上个步骤录制过“个人宏
活页簿”,便开始启动“PERSONAL.XLSB”,此后不管开启任何一个Excel档案,就会同时
加载“个人宏活页簿”,也就是可以使用这个类似公共活页簿里的宏程式。
三、在“Microsoft Excel”物件中有个“ThisWorkbook”,连按两次后,在右边的编写
程式码上方,左边选择“Workbook”,右边选择“Open”。
四、编写如图所示的宏程式码:其中“Private Sub Workbook_Open()”代表只要开启
Excel便执行的VBA宏,“Call Autosave”为呼叫执行在“Autosave”程序。
五、在现有模组(Module 1)或新模组(Module 11)输入VBA程式,如图所示有两个宏程序
,一个是“自动储存所有开启中活页簿”,作用是每五分钟执行一次“Autosave”,而这
个“Autosave”,作用是所有开启中的活页簿储存一次,储存后再执行“自动储存所有开
启中活页簿”。综合这两个宏,结果为每隔五分钟储存所有开启中的活页簿。
六、除了储存所有开启中档案,另一个重点是开启任何档案皆会自动储存, 这里会用到
前面所述隐藏的Excel档案。倘若有兴趣,必须先把资料夹选项中,“隐藏的项目”打勾
设定为开启。
七、通常在这个路径可找到“PERSONAL.XLSB”:“
C:\Users\b8810\AppData\Roaming\Microsoft\Excel\XLSTART”其中“Users”为系统C磁
碟的使用者资料夹、“b8810”为使用者名称。一般不会直接用到这个档案,都是像第一
个步骤录制好宏,每次开启任何Excel档案,就会自动加载“PERSONAL.XLSB”所含宏
,在此只是让各位读者一探这个隐藏的档案。
这里分享如何将所有开启中的Excel档案设定为自动储存,实际使用发现,每隔一段时间
Excel会停顿下来,执行VBA程式自动储存。相较之下,Excel在软件选项设置提供的自动
储存功能,执行相对流畅,几乎感觉不到痕迹。这个可能在所难免,因为毕竟是在软件开
发阶段,微软就把这个功能写在软件架构里面了。
虽然内置的自动储存功能效率较优越,但我遇过几次惨痛经验,这个功能失效,Excel当
机停止运作,没办法找回我原来作业中的档案,着实欲哭无泪!所以如果是预计要执行一
项复杂、多个档案同时操作、需要长时间进行的任务情况下,建议还是使用这个相对保险
、自己设计的VBA宏程式,因为靠自己最安全。当然,双管齐下的话,那更是高枕无忧
了!
延伸阅读:
VBA如何处理文字乱码情形
http://www.b88104069.com/archives/4243
VBA如何编写Vlookup公式整理财产目录
http://www.b88104069.com/archives/4234
VBA如何保持档案干净
http://www.b88104069.com/archives/4230

Links booklink

Contact Us: admin [ a t ] ucptt.com