在哪里可以保存excel vba函数以便能够访问其他工作簿中的函数
我已经创build了一个函数,我希望能够打开任何Excel文件,并通过input单元格'= function'来使用这个函数。 这是可能的,我该怎么做? 我在哪里保存该function?
将包含该函数的工作簿保存为加载项(根据您的Excel版本,可以是.xlam或.xla)。 然后,您可以通过加载项pipe理器进行安装,并从任何工作簿调用它。
注意:您在技术上不必将其保存为加载项 – 您可以使用常规工作簿 – 但是,只要调用它,就必须在函数名称前加上工作簿的名称(例如= Personal.xlsb !some_function),并且每次都必须记住打开工作簿(或将其放入XLSTART或其他启动文件夹中)。
我将以wbCompany
作为wbCompany
和Workbook B的Workbook A示例提供答案。
从我的理解是,你有一个在wbCompany.getEmployeeCount()
函数,你想在wbEmployee
使用这个函数。
首先,重命名这两个文件的VBA项目,以防止重复的项目名称。 因此,我们将把VBA项目分别命名为vbaPrjEmp
和vbaPrjCmp
,分别用于wbEmployee
和wbCompany
工作簿。
其次,您需要添加wbCompany
作为wbCompany
参考。
- 在
wbEmployee
,打开“Microsoft Visual Basic for Applications”窗口。 - select工具>参考。
- 在出现的引用对话框中,单击浏览。
- 在出现的“添加引用”对话框中,从“文件types”框中select“Microsoft Excel文件”,select要调用的文件(本例中为
wbCompany
),然后单击“打开”。 - select确定closures参考对话框。
最后在wbEmployee
您现在可以通过以下方式引用/调用wbCompany
中的函数:
Sub compareEmpCount() msgbox vbaPrjCmp.ThisWorkbook.getEmployeeCount End Sub
您可以将其存储在Personal.xlsb工作簿或Excel加载项(.xlam)中。 search这两个之一,让你在正确的轨道上。
那么,首先,你必须在Excel中启用macros。
之后,您可以使用Alt + F11打开Excel VBA编辑器,并在那里创build您的function。
最后,你可以在'= function'的单元格中使用你的函数。
无论如何,你可以尝试这个链接来帮助你第一个VBA函数: http : //www.fontstuff.com/vba/vbatut01.htm
注意:我已经在Excel上创build了一些函数,它总是为我工作。 但是请记住:您必须在Excel中启用macros。
您可以在这里阅读有关macros: https : //support.office.com/en-nz/article/Enable-or-disable-macros-in-Office-documents-7b4fdd2e-174f-47e2-9611-9efe4f860b12