excel - 如何引用保存在 Excel 2016/2019 中个人宏文件夹之外的 .XLAM 插件中的 Excel 宏(不是函数)?
问题描述
我们可以使用自定义函数 (UDF) 创建一个 .XLAM 插件。一旦我们将 Excel 连接到插件,就可以从另一个工作簿中调用这些 UDF,而不管插件的保存位置(甚至在 Personal Macros 文件夹之外)。
但是不能对保存在同一个 .XLAM 文件中的宏(子过程)执行相同的操作。根据我的研究和试验,如果插件保存在 Personal Macros 文件夹中,似乎可以正确调用子程序。但如果插件保存在其他地方,按下 Alt-F8 后宏不会显示在宏列表中。
有没有解决的办法?我们需要将插件保存在 C:\OneDrive\Macros\Addin.xlam 中,因为插件会经常更新,所以当每个人都通过 OneDrive 自动更新它时,这样就省去了麻烦。
我们正在使用 Excel 2016 和 2019。
解决方案
经过几周的研究和尝试不同的方法,我找到了最好的方法如下:
确保将宏源(例如 MyMacros.xlsm)保存为 MyMacros.xlam,以便加载项包含最新的宏和函数。
确保 MyMacros.xlam 加载项已在单击文件 - 选项(或 Alt - F、T)加载项 - 管理 Excel 加载项 - Go (G) 中连接
在第二个 Excel 文件(比如说 MyExcel.xlsm)中,打开 VBA 编辑器 (Alt-F11)。选择 MyMacros.xlam 项目并将名称重命名为 MyMacros 以使其不同(图片) 在我的示例图片中,MyMacros 是 FreelensiaMacros。
如果您打开了多个 XL 文件,请单击左侧 VBA 项目列表窗格中的 MyExcel 项目(不是 MyMacros!)。然后转到工具 - 参考并从列表中选择 MyMacros。您现在应该在左侧的 VBA 项目面板中看到一个新的引用(图片)
5.,创建一个名为 CallMyMacrosMod 的模块,并使用 Application.Run 从 MyMacros.xlam 文件中键入几个宏名称,例如:
Sub FormatTables()
Application.Run "MyMacros.FormatTables"
End Sub
在 MyMacros.xlsm 文件中构造文本很方便,该文件本身存储命令以调用所有宏。然后,您可以复制并粘贴到 Word(以避免引号问题),然后从 Word 复制并粘贴到此 VBA 编辑器中。
- 保存并关闭 VBA 窗口。您现在可以从 MyExcel 文件的宏列表中调用 MyMacros 宏,而无需打开 MyMacros,只需键入 Alt-F8。
- 保存并关闭您的 XL 文件。
资料来源: https ://www.myonlinetraininghub.com/calling-vba-in-add-ins-from-vba-modules
推荐阅读
- sqlite - SQLite ORDER:围绕中心分布结果
- javascript - React native, how to stop infinitely running setInterval when a particular state variable value changes
- git - GIT 提交结构
- php - 试图在 laravel eloquent 中获取非对象错误的属性“名称”
- pyspark - 将 HDFS 文件夹中的许多逗号分隔文件加载到 pyspark 数据帧中 第一个文件具有标题
- sql - 如何将 Varchar2 值转换为 Oracle SQL 中的数字?
- asp.net - 在 web.config 文件中禁用 8.3 名称创建
- python - 如何在 Postgres 查询中定义变量并保存值?
- ceph - cephfs 似乎与 linux 5.11 内核有问题
- ruby - Windows:安装 pg gem 失败,出现“找不到 PostgreSQL 客户端库 (libpq)”和“未定义对 `PQconnectdb' 的引用”