Passing a variable into a subroutine in a different open workbook

A

ActDude

I am trying to pass on a variable called by a subroutine in a macro written
in a different workbook. The variable is the filename of the workbook where
the first macro is written. I didn't get an error with both of the following
lines of code, but it just stopped running. Can you help?

FirstWb = ThisWorkbook.Name
ActiveWbMacro = SecondWb &* "!RunMacro2(""" & FirstWb & """)"
Application.Run ActiveWbMacro

I also tried:
ActiveWbMacro = "'" & SecondWb &* "'!RunMacro2(""" & FirstWb & """)"
Application.Run (ActiveWbMacro)

Thanks for your help!
 
D

Dave Peterson

This worked fine for me.

I put this in a general module in Book3.xls's project:

Option Explicit
Sub runmacro2(mystr As String)
MsgBox mystr
End Sub

And I called it this way:

Option Explicit
Sub testme()

Dim FirstWb As String
Dim SecondWb As String

Dim ActiveWbMacro As String

SecondWb = Workbooks("book3.xls").Name
FirstWb = ThisWorkbook.Name

ActiveWbMacro = "'" & SecondWb & "'!RunMacro2"

Application.Run ActiveWbMacro, FirstWb

End Sub
 
A

ActDude

This worked great. Thanks!

Dave Peterson said:
This worked fine for me.

I put this in a general module in Book3.xls's project:

Option Explicit
Sub runmacro2(mystr As String)
MsgBox mystr
End Sub

And I called it this way:

Option Explicit
Sub testme()

Dim FirstWb As String
Dim SecondWb As String

Dim ActiveWbMacro As String

SecondWb = Workbooks("book3.xls").Name
FirstWb = ThisWorkbook.Name

ActiveWbMacro = "'" & SecondWb & "'!RunMacro2"

Application.Run ActiveWbMacro, FirstWb

End Sub
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top