方法value作用于对象range时失败_Excel VBA解读 | 进阶篇(125):使用Run方法来调用过程...

学习Excel技术,关注微信公众号:

excelperfect

在《Excel VBA解读 | 进阶篇(123):用来调用过程的Call语句》中,我们介绍了可用于调用另一个过程的Call语句。利用过程调用,我们能够有效地组织程序代码,参见《Excel VBA解读 | 进阶篇(124):VBA程序的组织》。

Application对象的Run方法也可用于在一个过程中调用另一个过程,如下面的代码所示:

Sub test()

    Application.Run "yourPro"

End Sub

Sub yourPro()

    MsgBox "Hi,调用成功!"

End Sub

在test过程中使用Run方法调用yourPro过程,运行test过程的效果如下图1所示。

f21d29d5fde6039568dcdf65d2b962c3.png

图1

Run方法的一个优势在于,可以将要调用的过程名赋值给一个变量,然后在Run方法中将该变量作为参数,实现运行参数指定的过程。如下面的代码所示:

Sub test()

    Dim str As String

    str = "yourPro"

    Application.Run str

End Sub

Sub yourPro()

    MsgBox "Hi,调用成功!"

End Sub

运行test过程,结果如下图2所示。

db6838b392c61b94fe02f447b290c60f.png

图2

在Run方法中,还可以将要传递给被调用过程参数的值作为变量,如下面的代码所示,将变量iNum中的值传递给myPro过程的参数:

Sub testPro()

    Dim iNum As Long

    iNum = 6

    Application.Run "myPro", iNum

End Sub

Sub myPro(num)

    Dim rng As Range

    For Each rng In Range("A1:C3")

        rng.Value = rng.Value + num

    Next rng

End Sub

还可以使用Run方法调用另一个工作簿中的过程,例如代码:

Application.Run“’my Data.xlsm’!test”

将运行“my Data.xlsm”工作簿中的test过程。使用这种方法,不需要添加对被调用程序所在工作簿的引用,但是要注意,“my Data.xlsm”工作簿必须处于打开状态。

小结

Application.Run方法的作用:运行宏或者调用函数。

Application.Run方法的语法

Application.Run(宏名, 参数1, 参数2, 参数3, 参数4, 参数5, 参数6, 参数7, 参数8, 参数9, 参数10, 参数11, 参数12, 参数13, 参数14, 参数15, 参数16, 参数17, 参数18, 参数19, 参数20, 参数21, 参数22, 参数23, 参数24, 参数25, 参数26, 参数27, 参数28, 参数29, 参数30)

其中:

1.所有参数都可选。

2.宏名指定要运行的宏,可以是代表宏名称的字符串、指示函数所在位置的Range对象,也可以是已注册DLL(XLL)函数的寄存器ID,Variant型。如果使用字符串,则将在活动工作表的上下文中评估该字符串。

3.参数1-参数30代表传递给过程或函数的参数,Variant型。

b077ceafc3be9359a71ef9de158a1910.png

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值