vba 跨工作簿运行模块

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

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

参考:

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

猜你喜欢

转载自blog.csdn.net/qq_29663489/article/details/81163125
vba