所以我有一个主excel文件,其中包含多个宏的代码,例如:
Sub ExtractDate()
,Sub RemoveBlankSpaces()
和Sub ReMoveOlderDates()
。
我想要做的是每次从服务器下载新的Excel电子表格时,我希望能够将主excel文件中的相同宏应用于从服务器下载的文件,而不必将主excel文件中的代码复制并粘贴到新文件中。
有办法做到这一点吗?
答案 0 :(得分:0)
在任何Excel文件上执行宏的常用方法(您可以在代码中添加一些一致性检查规则)如下:
1)将要始终执行的代码添加到主工作表的ThisWorkbook_Open
事件中。您可以通过单击"此工作簿"来自VBE访问该事件。在模块树上,然后选择打开事件。这就是这个想法:
Private Sub ThisWorkbook_Open()
ExtractDate
RemoveBlankSpaces
RemoveOlderDates
'etc.
End Sub
如果需要,请不要忘记添加最终数据验证(例如,如果名称文件为"此"然后执行)
2)将此工作簿保存为" .xlam
&#34;,为其指定名称和您喜欢的位置(它只会创建一个副本,您不会覆盖原始主工作簿)< / p>
3)打开一个新的Excel文件,然后转到文件/选项/加载项,因此浏览(我的Excel是法语,名称可能略有不同,但这是逻辑)
4)在浏览窗口中,查找您的.xlam
文件并将其添加到已检查的加载项列表中
从现在开始,每次打开Excel文件时,都会执行.xlam文件的ThisWorkbook_Open
事件中调用的宏(从主工作簿生成)。
重要提示
如果您的宏中有&#34; ThisWorkbook.Range("A1")
&#34;等引用,请不要忘记在主文件中用&#34; ActiveWorbook
&替换它们#34;在将其保存为.xlam
之前,否则您将在加载项上运行宏而不在当前打开的工作簿中运行宏。如果您不想触摸原始文件,可以随时将此代码编辑到加载项中,从VBE中的任何Excel实例访问该加载项(如果激活加载项,树将始终存在) 。