Excel VBA中,同一个应用程序下面包括多个工作簿,每个工作簿都有自己独立的VBAProject
在同一个VBA工程中,使用Call即可调用其他模块中的过程和函数,例如:
Call Module2.Proc2
要注意:Call后面必须书写模块名或过程名,而不是双引号包起来的字符串。
当然也可以使用Excel的Application.Run “Module2.Proc2”调用另一个模块中的过程。
如果要调用另一个VBA工程中的过程和函数,Call就不好使了,需要使用Run,只不过要在模块前面加上被调用的工程名称。
下面假设我的Excel有个加载宏“VBA引用管理工具.xlam”,它的模块ABC下面有如下代码:
加载宏的ABC模块中包含一个Msg过程,一个Add函数,还有两个API函数。
然后在Excel中新建一个工作簿1,工作簿1的模块中书写代码用于调用上述几个函数:
运行Test1,结果如下:
Test2、Test3运行正常,结果略。
注意:并非所有Office组件的Application均有Run方法,例如Outlook的Application没有Run方法。