在不同的excel文件中使用一个macros

我写了一个macros,我想在不同的excel文件中使用,它具有几乎相同的表结构,但数据不同。

那么是否有可能只是“包含”我的macros脚本到任何Excel文件?!

我已经读过这个技巧了,但对我来说听起来像是一个坏玩笑。

谢谢

您需要将文档另存为Excel加载项(.xla)并将其分发。 用户可以使用Tools>Add-ins来安装Tools>Add-ins 。他们需要浏览到您发送给他们的文件,并validation插件列表中是否选中加载项。 请注意,加载项不会显示在Alt + F8Tools>Macro 。 您需要在您的加载项代码中为此创build一个菜单。 看到这个posthttp://spreadsheetpage.com/index.php/tip/creating_custom_menus/

如果您希望您的代码在所有工作簿中均可用,请使用PERSONAL.XLS或在Excel 2007-2010中使用 PERSONAL.XLSB文件。 这些文件通常保存在文件和设置下的XLSTART文件夹中。

这是一个隐藏的工作簿,当您启动Excel时打开。 您在Excel中打开的所有工作簿中都提供了您在此工作簿中复制的代码。

制作一个最简单的方法是logging一个虚拟macros,然后在“存储macros”下拉列表下select个人macros工作簿。

打开macros编辑器( ALT + F9 ),然后保存PERSONAL.XLS文件。 写一个macros,例如

 Public Sub Testing() MsgBox "Hey im from Personal.xls" End Sub 

请记住隐藏名为personal.xls的工作簿( Window>>Hide )。 现在在任何工作簿上,这个macros是可用的。

你有两个select, 您可以

1)将您的macros包含在您的personal.xlsb中,该macros将被隐藏,但可供您使用或

2)把你的macros包含在一个每次启动excel的加载文件中。 如果其他人想要使用您的macros,插件文件可以为您提供简单分发的额外好处。

对于我正在构build的工具,我select使用一个加载项文件,它的工作很好。

把你的代码放在插件中的一个模块中,确保macros不是​​私有的,你甚至可以在快速访问工具栏上制作一个button以方便使用。

问题解决了。

如果personnal.xls解决scheme不适合您的需要,您可以将macros保存到一个Excel工作簿,并要求用户在“其他”文档中加载(打开)。
在这种情况下,您可能需要更正您的macros。 例如:用ThisworkbookreplaceThisworkbook

最简单,最好的方法是创build一个包含macros但不包含数据的“指挥官”XLSM。 它所做的只是打开指定的Excel文件并在其上运行macros。 您可以键入/粘贴特定文件的名称,也可以循环遍历整个目录等。在不同的工作簿上运行macros比在实际包含该macros时更容易。 像下面这样的东西…一块蛋糕。

 Sub MultipleFileMacro() Dim wb As Excel.Workbook Dim fso As Scripting.FileSystemObject Dim f As Scripting.File Set fso = New Scripting.FileSystemObject For Each f In fso.GetFolder("c:\samplefolder").Files Set wb = Excel.Workbooks.Open(f) MyMacro wb wb.Close Next f End Sub ------------ Sub MyMacro(wb As Excel.Workbook) 'do something here End Sub 

如果要在多个工作簿中使用macros,请将其转换为AddIn或保存在Personal中。 Xlsb文件,如果其他工作簿中的数据库结构类似,那么您的macros将是有用的,但始终记住每个代码有一个特定的任务,☺