vba 跨工作簿运行模块

 

vba中,使用Call程序名,是使用当前工作簿中的程序,若要运行其他工作簿的程序,则要使用(要先打开这个工作簿) plication.Run "'b.xls'!模块1.宏1"

除此之外,此方法还可以用于传递参数(跨工作簿)

参考:

Sub sal()
Dim a, b As String
a = "C:\Users\Administrator\Desktop\文艺社模板\10零售业务基础数据-零售(下).xlsm"
 Application.Workbooks.Open a
    Application.Run "'" & a & "'!b" '''''这是运行其他工作簿的程序(文件地址带参数)
End Sub

其中a工作簿模块下写下面的代码

Dim pth1 As String'当前模块
Public SS1 As String, SS2 As String
Public Sub Main()    
    pth1 = ThisWorkbook.Path & "\工作簿名.xls"
    Application.Workbooks.Open pth1
    Application.Run "'工作簿名.xls'!aa"''''''''这是运行其他工作簿的程序

    Application.Run "'工作簿名.xls'!ssd"''''''''这是运行其他工作簿的程序(用于调用参数)
    'Workbooks("工作簿名.xls").Close savechanges:=Fals

   Range("a1") = Application.ExecuteExcel4Macro("abc")'''''''''这是传递参数
    MsgBox Application.ExecuteExcel4Macro("abc")
End Sub
Sub aa()
MsgBox ("aa")
End Sub

‘’‘另一个工作簿’写这个

Public SS1 As String

Public Sub ssd()
    Range("a1") = 1
    SS1 = "aa12" 'ThisWorkbook.Name
    Application.ExecuteExcel4Macro "set.name(""abc"",""" & SS1 & """)"
End Sub
Sub aa()
MsgBox ("bb")
End Sub

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值