我正在使用 Excel 2010 并向电子表格添加一个小的 VBA 宏。(宏的目的是获取活动工作表上的数据并将其导出到 CSV 文件,但这与问题无关。)宏确定使用ThisWorkbook.Path
. 我还在快速访问工具栏中添加了一个自定义按钮来激活宏。
在我的实验电子表格(Test.xlsm,存储在一个路径中)中获得工作算法后,我在另一个路径中制作了电子表格的副本并将其重命名为_Database.xlsm。然后我打开 _Database.xlsm 并运行宏。令我惊讶的是,该文件被写入原始路径,而不是新路径。低头看 Windows 工具栏,我看到 Excel 也以原始路径打开了原始文件。
经过大量的代码调整、检查属性等,我终于发现我可以通过打开复制的电子表格、删除快速访问工具栏按钮、重新添加它,然后保存文件来防止这种情况发生。我的问题是:
为什么宏不能与电子表格一起“独立移植”?即为什么副本与原始表格保持这种联系?
有没有一种方法可以创建或修改宏以使其在这种意义上具有可移植性?