上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.4.3 XLSM文件——VBA程序的藏身之所
编写完VBA程序之后,必须将它保存到一个文件中。否则一旦关闭Excel软件,之前编写的代码就会全部丢失,再打开Excel软件时将无法找回。
与用户在工作表中填写的数据一样,VBA 程序代码也要一起保存在这个工作簿文件中。在Excel 2003及之前版本中,工作簿是以“.xls”为扩展名的一个文件,比如“工资表.xls”。当我们在Excel界面或VBE 界面中执行“保存”或“另存为”命令后,程序代码就会和数据保存到同一个文件中。当我们希望再次运行该程序时,只要打开这个工作簿文件即可。
但是从Excel 2007开始,微软公司对文件格式进行了调整:在默认情况下,工作簿文件的扩展名为“.xlsx”,只能保存数据,不允许包含 VBA 程序代码。所以在编写完 VBA 程序以后,必须在“保存”或“另存为”对话框中将“保存类型”修改为“Excel启用宏的工作簿(*.xlsm)”,从而将其保存到一个扩展名为“.xlsm”的文件中,如图1.16所示。如果仍保存为默认的“.xlsx”文件,即使提示保存成功,再次打开时也将丢失全部VBA代码。
使用 Excel 2007或更新版本的读者,也可以选择将含有 VBA 程序的工作簿保存为“Excel 97-2003工作簿(*.xls)”,这样就能够在所有版本的Excel中打开并运行它。不过新版本的“.xlsm”文件在占用内存和效率方面相较于老版本的“.xls”文件有所优化,因此需要读者根据实际情况灵活选择。
图1.16 将工作簿保存为“Excel启用宏的工作簿(*.xlsm)”
事实上,Excel还提供了“.xlam”“.xltm”等可以保存VBA程序的文件类型,这些文件专门用于开发“加载项”等特殊VBA程序,这里暂不详细介绍。