我想将我的所有VBA项目保存在Excel工作簿(或其他类型的文件,如果可能)中,然后将其嵌入以在另一个工作簿中运行。我已经看过有关它的主题,但是只找到了运行第一张表的宏的方法。
我想在第二个工作簿中运行第一个工作簿中的宏,而无需打开第一个工作簿来执行此宏。我该怎么办?
答案 0 :(得分:2)
将带有宏的文件另存为xlam文件,每次打开Excel时Excel都可以加载它们。
您需要打开文件->选项->加载项。
在底部有一个转到按钮(或某些原因,当前计算机上没有英文Excel。)
然后,通过单击浏览并找到刚刚保存为xlam文件的文件,将文件添加到列表中。
答案 1 :(得分:2)
我想到了两种情况:
1)您还有第二个供个人使用的宏,可以将其保存在本地(保存在%USERPROFILE%\ AppData \ Roaming \ Microsoft \ Excel \ XLSTART 中)。这样,您就可以为宏等创建快捷按钮。这些类型的宏可通过Excel打开,并且将在默认VBA编辑器中作为单独的VBA项目。
2)您有多个用户需要访问的网络或驱动器,因此每个用户的文件中都有一个宏(.xlsm或.xlsb),内部宏读取Application。运行“ filepath \ workbookname.xlsb!宏”,它还允许您调用私有子例程(请注意,您可以使用Call,但是Application.Run将确保甚至可以访问私有宏)。
尽管我个人有一个用户的计算机始终打开另一个文件,但这并不要求打开另一个工作簿。编辑:
第三种情况(确实是2b):
3)您有要定期访问另一个文件的文件...您将采用类似的方法将 2 指向Application.Run的宏,尽管您可以保存该宏您的XLSTART文件夹中的宏...这将使您可以在其他人也想访问和使用的源宏位置中使用。 source 文档将允许您为许多用户维护1个文件。
答案 2 :(得分:2)
您的答案很棒!很高兴从@Cyril了解XLSTART文件夹,但是基于@Andreas的答案,我找到了自己的路径。
如@Andreas所说,添加外接程序的“问题”是因为我的VBA项目将在VB编辑器上可用于该计算机上的每个工作簿,并且要运行我的宏,我必须使用Application。运行(“ workbook.xlam!Macro”)。
然后我找到了引用,它具有相同的功能,包括可以删除.xlam文件以删除代码,并且没有上面提到的问题。
添加我的VBA .xlam文件作为参考,它将仅适用于该特定工作簿,并且我可以像在同一工作簿上一样运行宏。
常识:
添加参考:
1-将项目另存为Excel加载项(.xlam文件)
2-打开目标工作簿,转到“ Visual Basic编辑器”
3-转到“工具”>“参考”>“浏览...”,找到您的.xlam文件并确保已选中。
4-完成!现在,您将在编辑器上看到该项目,并且可以像在同一工作簿上一样运行宏。