在 Excel 中,如何调用存储在另一个工作簿中的用户定义函数而无需打开另一个工作簿?

Posted

技术标签:

【中文标题】在 Excel 中,如何调用存储在另一个工作簿中的用户定义函数而无需打开另一个工作簿?【英文标题】:In Excel, how do I a call a user-defined function stored in another workbook without having to have the other workbook open? 【发布时间】:2021-03-03 22:46:32 【问题描述】:

我有一些 VBA 用户定义函数,我想将它们存储在他们自己的工作簿中,以便多个其他工作簿可以访问它们。我看到一个简单的方法是使用常用功能制作工作簿,然后使用工具 > 参考(VBA 窗口)引用这个常用工作簿。

但是,我现在发现,当我在调用工作簿中使用该函数时,它希望我打开通用功能工作簿。我不想这样做,因为这可能会给我的用户造成一些混乱。

在工作簿之间共享 VBA 函数而不必在 Excel 中打开函数“存储库”的最佳做法是什么?

【问题讨论】:

不打开工作簿就无法做到这一点。 将该共享工作簿另存为插件 (xla/xlam)。 @GSerg 谢谢。我已将它保存为 xlam,它的功能现在可以在任何工作簿中使用。当然,这又产生了另一个问题……如何编辑 xlam 中的宏?当我打开它并进入 VBE 时,项目浏览器中没有任何内容。 对象浏览器中有东西。展开它。 【参考方案1】:

工作簿应该是打开的,但你可以让它不可见 将 commonWB 调暗为工作簿 设置 commonWB = Workbooks.Open("path/file.name") commonWB .Windows(1).Visible = False

离开宏时别忘了关闭它

【讨论】:

以上是关于在 Excel 中,如何调用存储在另一个工作簿中的用户定义函数而无需打开另一个工作簿?的主要内容,如果未能解决你的问题,请参考以下文章

excel里面我想 用VBA实现调用另一个工作簿中的数据怎么解决

Azure Blob 存储:从 Excel 工作簿中删除密码

另一个工作簿中的更改会影响主工作簿中的 UDF

如何在保存到 OneDrive 的 Excel 工作簿中运行 SQL 查询?

如何将一个 Excel 工作簿中的多个工作表合并成一个工作表?

如何在 Excel VBA 中声明全局变量在工作簿中可见