gpt4 book ai didi

vba - 如何在VBA中调用另一个特定工作簿的函数?

转载 作者:行者123 更新时间:2023-12-01 17:29:36 25 4
gpt4 key购买 nike

我想知道是否有办法从另一个指定工作簿的模块调用 VBA 函数或方法,因为可以在不使用 Application.Run 的情况下调用特定工作表

对于工作表,我可以调用例如:

ActiveSheet.MyTest() 

如果 MyTest 在工作表模块中定义

但是我想调用模块中定义的函数

我尝试过:

ActiveWorkbook.MyTestModule()
ActiveWorkbook.VBProject.VBComponents("MyModule").MyTestModule(myArg)

这不起作用生成错误对象不支持此方法

我可以打电话

Application.Run(ActiveWorkbook.name & "!MyTestModule", myArg)

但我不确定 Application.Run 的错误处理,我会发现直接运行该方法更干净

最佳答案

在您想要调用的工作簿(我将其称为 A)中,您可以添加对您要调用的工作簿(我将其称为 B)的引用,如下所示:

  1. 在工作簿 A 中,打开 Microsoft Visual Basic for Applications 窗口(例如,按 Alt+F11)。
  2. 选择“工具”、“引用”。
  3. 在出现的“引用”对话框中,选择“浏览”。
  4. 在出现的“添加引用”对话框中,从“文件类型”框中选择“Microsoft Excel 文件”,选择要调用的文件 (B),然后选择“打开”。
  5. 选择“确定”关闭“引用”对话框。

在文件 A 中,您应该能够像在文件 A 中一样调用文件 B 中的公共(public)模块级函数。要解决任何命名冲突,您可以在文件 B 中添加“项目名称”作为调用前缀,如下所示在“项目属性”对话框的“常规”选项卡中指定(可通过 Microsoft Visual Basic for Applications 的“工具”菜单中的“属性”命令访问)。例如,如果文件 B 的“项目名称”是“VBAProjectB”,则可以使用语法 VBAProjectB.F 从文件 A 调用函数 F。

关于vba - 如何在VBA中调用另一个特定工作簿的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10012463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com