2013-07-23 26 views
0

我正在使用Excel 2010并将小VBA宏添加到电子表格中。 (宏的目的是获取活动工作表上的数据并将其导出到CSV文件,但这与问题相关)。宏使用ThisWorkbook.Path确定文件的输出路径。我还为快速访问工具栏添加了一个自定义按钮来激活宏。非便携式Excel VBA宏行为

在我的实验性电子表格(Test.xlsm,存储在一个路径中)中获得工作算法后,我在另一个路径中制作了电子表格副本,并将其重命名为_Database.xlsm。然后我打开_Database.xlsm并运行宏。令我惊讶的是,该文件被写入原始路径,而不是新文件。并且看着Windows工具栏,我看到Excel已经在原始路径中打开了原始文件。

经过大量的代码调整,检查属性等,我终于发现,我可以通过打开复制的电子表格,删除快速访问工具栏按钮,重新添加它,然后保存该文件来防止这种情况。我的问题是:

  1. 宏为什么不是“独立携带”与电子表格?即为什么该副本将这种领带与原始单张保持一致?

  2. 有没有一种方法可以创建或修改宏以使其具有便携性?

+3

如果你想要一个工具栏/按钮与文件一起旅行(即不是总是链接回原始版本),那么你需要将它添加到文件本身,而不是QAT。 QAT只会“知道”您将按钮链接到的实际文件。将宏添加到您的个人宏工作簿中,然后让它在ActiveWorkbook上运行可能会更好。除非要将其分发给其他用户,否则请将该宏保存在“数据库”工作簿中并添加自定义功能区部分:http://www.rondebruin.nl/win/s2/win001.htm –

+0

这很完美 - 谢谢!如果你让它成为一个答案,我可以接受&upvote它。 – JDM

回答

1

如果你想有一个工具栏/按钮,与旅行文件(即不总是链接回原来的版本),那么你需要将它添加到文件本身,而不是到QAT。 QAT只会“知道”您将按钮链接到的实际文件。

将宏添加到您的个人宏工作簿然后让它在ActiveWorkbook上运行可能会更好。

但是,如果要将其分发给其他用户,可以将该宏保留在“数据库”工作簿中并添加自定义功能区部分。见:http://www.rondebruin.nl/win/s2/win001.htm