我写了一个宏,我想在不同的excel文件中使用它,它们具有几乎相同的表结构但数据不同。
那么无论如何只要将我的宏脚本“包含”到任何excel文件中都可能吗?!
我已经读过this tip了,但这听起来像个恶作剧。
谢谢
答案 0 :(得分:8)
您需要将文档另存为Excel加载项(.xla)并进行分发。然后,用户可以Tools>Add-ins
安装添加。他们需要浏览到您发送的文件,并验证加载项列表中是否已选中加载项。请注意,加载项不会显示在 Alt + F8 或Tools>Macro
中。您需要在加载项代码中为其创建一个菜单。看到这篇文章http://spreadsheetpage.com/index.php/tip/creating_custom_menus/
如果您希望代码在所有工作簿中都可用,请使用您的代码
PERSONAL.XLS
或 Excel 2007-2010 您的PERSONAL.XLSB
文件。这些通常保存在您的文档和设置下的XLSTART
文件夹中。
这是一个隐藏的工作簿,在您启动Excel时会打开。 您在Excel中打开的所有工作簿中都可以使用此工作簿中复制的代码。
最简单的方法是录制虚拟宏,然后在Store The Macro下拉列表中选择Personal Macro Workbook。
打开宏编辑器( ALT + F9 ),然后保存PERSONAL.XLS
文件。写一个宏,例如
Public Sub Testing()
MsgBox "Hey im from Personal.xls"
End Sub
请记住隐藏名为
personal.xls
(Window>>Hide
)的工作簿。现在,在任何工作簿上,都可以使用此宏。
答案 1 :(得分:2)
你有两种选择;你可以
1)在你的personal.xlsb中包含你的宏,它将被隐藏,但可供你使用或
2)将你的宏包含在一个加载项文件中每次都会用excel启动。如果其他人想要使用您的宏,加载项文件可以为您提供易于分发的额外好处。
对于我正在构建的工具,我选择使用加载项文件和它的效果非常好。
将代码放在插件中的模块中,确保宏不是私有的,甚至可以在快速访问工具栏上创建一个易于使用的按钮。
问题解决了。
答案 2 :(得分:1)
如果personnal.xls解决方案不适合您的需求,您只需将宏保存到Excel工作簿,并要求用户在“其他”文档中工作时加载(打开)。登记/>
在这种情况下,您可能需要更正宏。例如:Thisworkbook
替换Activeworkbook
。
答案 3 :(得分:1)
最简单,最好的方法是创建一个“commander”XLSM,它包含宏但没有数据。它只是打开指定的Excel文件并在它们上运行宏。您可以键入/粘贴特定文件的名称,也可以遍历整个目录等。在实际包含宏的工作簿上运行宏非常容易。下面这样的东西......小菜一碟。
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
答案 4 :(得分:0)
如果要在多个工作簿中使用宏,请将其转换为AddIn或保存在Personal中。 Xlsb文件,如果数据库结构在其他工作簿中类似,那么你的宏会很有用,但总是要记住每个代码都有一个特定的任务,☺