在哪里可以保存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项目分别命名为vbaPrjEmpvbaPrjCmp ,分别用于wbEmployeewbCompany工作簿。

其次,您需要添加wbCompany作为wbCompany参考。

  1. wbEmployee ,打开“Microsoft Visual Basic for Applications”窗口。
  2. select工具>参考。
  3. 在出现的引用对话框中,单击浏览。
  4. 在出现的“添加引用”对话框中,从“文件types”框中select“Microsoft Excel文件”,select要调用的文件(本例中为wbCompany ),然后单击“打开”。
  5. 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