从另一个工作簿调用宏
Calling a macro from another workbook
所以我有一个主 excel 文件,其中包含多个宏的代码,例如:
Sub ExtractDate()
、Sub RemoveBlankSpaces()
和 Sub ReMoveOlderDates()
。
我想做的是每次从服务器下载新的 excel 电子表格时,我希望能够将主 excel 文件中的那些相同的宏应用到从服务器下载文件,而无需将主 excel 文件中的代码复制并粘贴到新文件中。
有办法吗?
在任何 Excel 文件上执行宏的常用方法(因此您可以在代码中添加一些一致性检查规则)如下:
1) 将你想要一直执行的代码添加到mastersheet的ThisWorkbook_Open
事件中。您可以从 VBE 访问事件,方法是单击模块树上的 "This Workbook",然后选择打开的事件。这是想法:
Private Sub ThisWorkbook_Open()
ExtractDate
RemoveBlankSpaces
RemoveOlderDates
'etc.
End Sub
如果需要,请不要忘记添加最终数据验证(例如,如果名称文件是 "this",则执行)
2) 将此工作簿另存为“.xlam
”,给它起个名字和你喜欢的位置(它只会创建一个副本,你不会覆盖原来的主工作簿)
3) 打开一个新的 Excel 文件,然后转到文件/选项/加载项,然后浏览(我的 Excel 是法语的,名称可能略有不同,但这是逻辑)
4) 进入浏览器 window,查找您的 .xlam
文件并将其添加到已检查的加载项列表中
从现在开始,每次打开 Excel 文件时,都会执行在 .xlam 文件(从主工作簿生成)的 ThisWorkbook_Open
事件中调用的宏。
重要提示
如果你的宏中有“ThisWorkbook.Range("A1")
”之类的引用,不要忘记在主文件中将它们替换为“ActiveWorbook
”,然后再将其保存为.xlam
,否则您将 运行 宏位于加载项上,而不是当前打开的工作簿中。如果您不想修改原始文件,您可以随时将此代码编辑到加载项本身,从 VBE 中的任何 Excel 实例访问它(如果加载项是,树将始终存在活性)。
所以我有一个主 excel 文件,其中包含多个宏的代码,例如:
Sub ExtractDate()
、Sub RemoveBlankSpaces()
和 Sub ReMoveOlderDates()
。
我想做的是每次从服务器下载新的 excel 电子表格时,我希望能够将主 excel 文件中的那些相同的宏应用到从服务器下载文件,而无需将主 excel 文件中的代码复制并粘贴到新文件中。
有办法吗?
在任何 Excel 文件上执行宏的常用方法(因此您可以在代码中添加一些一致性检查规则)如下:
1) 将你想要一直执行的代码添加到mastersheet的ThisWorkbook_Open
事件中。您可以从 VBE 访问事件,方法是单击模块树上的 "This Workbook",然后选择打开的事件。这是想法:
Private Sub ThisWorkbook_Open()
ExtractDate
RemoveBlankSpaces
RemoveOlderDates
'etc.
End Sub
如果需要,请不要忘记添加最终数据验证(例如,如果名称文件是 "this",则执行)
2) 将此工作簿另存为“.xlam
”,给它起个名字和你喜欢的位置(它只会创建一个副本,你不会覆盖原来的主工作簿)
3) 打开一个新的 Excel 文件,然后转到文件/选项/加载项,然后浏览(我的 Excel 是法语的,名称可能略有不同,但这是逻辑)
4) 进入浏览器 window,查找您的 .xlam
文件并将其添加到已检查的加载项列表中
从现在开始,每次打开 Excel 文件时,都会执行在 .xlam 文件(从主工作簿生成)的 ThisWorkbook_Open
事件中调用的宏。
重要提示
如果你的宏中有“ThisWorkbook.Range("A1")
”之类的引用,不要忘记在主文件中将它们替换为“ActiveWorbook
”,然后再将其保存为.xlam
,否则您将 运行 宏位于加载项上,而不是当前打开的工作簿中。如果您不想修改原始文件,您可以随时将此代码编辑到加载项本身,从 VBE 中的任何 Excel 实例访问它(如果加载项是,树将始终存在活性)。