开头:调用宏或函数(SUB/Function)需是常规或公用声明(Public)
本次测试用工作本与调用的宏如图:
待调用宏1.XLS:
Sub st1()
MsgBox "表1.xls!Sheet1的宏"
End Sub
Sub tt1()
MsgBox "表1.xls!ThisWorkbook的宏"
End Sub
Sub mt1()
MsgBox "表1.xls!模块的宏"
End Sub
待调用宏2.XLS:
Sub abc1()
MsgBox "写在表2.xlsm!ThisWorkbook的宏"
End Sub
Public Sub abc11()
MsgBox "写在表2.xlsm!ThisWorkbook的宏2"
End Sub
Private Sub abc22()
MsgBox "写在表2.xlsm!ThisWorkbook的私有宏"
End Sub
'写在表2模块1上的宏
Sub abc2()
MsgBox "a11"
End Sub
Sub abc3(a3 As String)
MsgBox a3
End Sub
Sub abc4(a4 As Integer, b4 As Integer, c4 As Integer)
Dim d4 As Integer
d4 = a4 + b4 + c4
MsgBox d4
End Sub
写在测试.XLSM模块1的宏
Sub mt1()
MsgBox "1"
End Sub
选项默认加载信任中心要启用宏(有风险,测试使用)本次测试为2013版OFFICE
一、Call用法
Sub Call1()
Dim str As String '定义一个文本
str = "abc2" '把文本写入变量"
Call str '直接call变量
Call abc2 '直接call宏名
End Sub
Sub call2()
Call abc3("文本") 'Call有参数的宏时添加参数
Call abc4(3, 4, 5) 'Call多参数
End Sub
Sub call3()
Call ThisWorkbook.abc1
Call ThisWorkbook.abc11
'Call ThisWorkbook.abc22 '方法成员未找到,因为是私有
End Sub
用法小结:
1、CaLL可以接变量或真接宏名调用,写在同一页面下的宏可以直接调用。
2、CaLL带参数的宏正常括号后接参数。
3、适用于本工作本下的非私有宏或自定义函数,格式CALL + 宏名 或者先定义变量装入宏名调用。不同模块下需加上模块名。
二、APPLICATION.RUN用法
Sub run1()
'Application.Run "abc2" '写在XLS格式里的可以直接这样调用
Application.Run "模块2.Abc2" '写在97以上的版本需写明在哪里的宏名,不区分大小写
Application.Run ("模块2.abc3(""文本123"")") '调用本模块叁数文本的宏
Application.Run "模块2.abc4(1,2,3)" '调用本模块多参数的宏
End Sub
Sub run2()
'调用本工作本下不同模块的宏
Application.Run "ThisWorkbook.aBC1"
End Sub
Sub run3()
'调用另一个工作本下模块的宏
'另一工作本已打开的情况下:run 工作表名!位置.宏
Dim str3 As String
str3 = "1.xls!" & "模块1.mt1"
Application.Run sstr3
End Sub
Sub run4()
'调用另一个工作本下模块的宏
'另一工作本未打开的情况下:run '工作本路径.工作表名'!位置.宏
Dim str4 As String
str4 = "'" & ThisWorkbook.Path & "\" & "测试.xlsm" & "'" & "!模块1.mt1"
Application.Run sstr3 '调用指定位置工作本会把其打开
Application.Workbooks("测试.xlsm").Close '调用后关闭
End Sub
用法小结:
1、调用名不区分大小写。
2、RUN "模块名.宏名" 等同于 RUN ("模块名.宏名")
3、application.run 在xls格式下可以直接引用单宏名(模块名/宏名不重复情况下),XLSX以上需带上模块名 + 宏
4、调用未打开的宏要指定路径加工作本名,注意加单引号。添加文本参数时要用""双引号。调用未打开的工作本宏后会打开目标工作本。
结语:非必要还是尽量把经常要调用的宏写在同一工作本,或单独整一个做用调用宏工作本(部分版本打开工作本时也会有一个专门存宏的工作本)。也可以通过加载宏选项引用官方加载项(就打开工作本的时候会默认打开一个加载工作本)把宏都存于加载表里。文章来源:https://www.toymoban.com/news/detail-440318.html
微软官方的这几个加载宏的默认密码码如下
ATPVBACS.XLA Wildebeest!!
ATPVBAEN.XLA Wildebeest!!
EUROTOOL.XLA EXPTOOWS.XLA FUNCRES.XLA Wildebeest!!
HTML.XLA Weezaarde!?
LOOKUP.XLA PROCDB.XLA Wildebeest!!
SOLVER.XLA Wildebeest!!文章来源地址https://www.toymoban.com/news/detail-440318.html
到了这里,关于VBA(15)调用宏Call与Run的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!