我有一个使用BeforeSave事件运行代码的工作簿(“CodeBook.xlsm”)。当用户打开多个工作簿并选择通过文件/退出退出excel时,将提示用户是否保存工作簿,如果是,则为CodeBook.xlsm,然后运行BeforeSave代码。问题是,此时ActiveWorkbook可能不是CodeBook.xlsm,除非恰好是用户在选择退出Excel时所在的工作簿。如果用户从另一个工作簿退出excel,则BeforeSave代码正在运行,但activeworkbook是用户的一些随机文件,因此对BeforeSave代码中特定工作表和范围的所有引用都不起作用。
我已经尝试过各种方法使用静态声明来保留CodeBook和workbook()的名称。在应用程序退出时激活它以激活它,但是当BeforeSave运行时,它无法在任何地方获取名称CodeBook,简短将名称硬编码到代码中。
有什么建议吗?如果没有代码运行,如何在内存中保留变量名,但是当用户启动退出excel时,或者当Excel从用户命令而不是从application.quit退出时如何激活特定工作簿。使用excel 2010。