ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Execute Macros from Other workbooks on current workbook (https://www.excelbanter.com/excel-programming/366346-execute-macros-other-workbooks-current-workbook.html)

Allen[_13_]

Execute Macros from Other workbooks on current workbook
 
I'd like to be able to execute a macro I've got in A.XLS on the data in
B.XLS. I'm doing this from within a VB6 app. The code I've got seems to
work great for simple executions of Macros within the same workbook, namely:

workbookObject.Application.Run sMacroName, sarg1, sarg2 ....

If sMacroName is something like "Sheet1.Macro2" all is well. However if I
try something like sMacroName = "e:\temp\B.XLS!Sheet1.Macro2" I get one of
several issues. First error I've seen while attempting in VB6 is:

"The file cannot be opend because your virus scanner has detected a problem
with the file".

If instead I attempt this via VBA code within Excel itself like so:

Run "e:\delme\tryme3.xls!ThisWorkbook.Hello"

I get an error "The macro 'e:\delme\tryme3.xls!ThisWorkbook.Hello' cannot be
found.

I know within the VBA of Excel is at least gettting to the point where it
opens the file, but for some reason it says it cannot find the macro. If I
rename the file to something that does not exist and run the same line of
code above, I get the same error as within the VB6 code, namely:
"The file cannot be opend because your virus scanner has detected a problem
with the file".

Any help is greatly appreciated.

Allen Segall
(Softinterface, Inc.)



Jim Cone

Execute Macros from Other workbooks on current workbook
 
Allen,
I assume you have an object reference to the Excel application.
Also, I believe the workbook with the macro you are calling must be open...

Dim vReturnValue as Variant
vReturnValue = appXL.Run("A.xls!MacroName", sArg1, sArg2)
- or -
appXL.Run "A.xls!MacroName", sArg1, sArg2

Both of the above should work if the file is open, so try opening the file first
then run the code. If the file won't open, that is a different issue.

It appears to me that it would be simpler to duplicate the code
and run it from your VB app.
--
Jim Cone
San Francisco, USA
http://www.realezsites.com/bus/primitivesoftware



"Allen"
wrote in message
I'd like to be able to execute a macro I've got in A.XLS on the data in
B.XLS. I'm doing this from within a VB6 app. The code I've got seems to
work great for simple executions of Macros within the same workbook, namely:

workbookObject.Application.Run sMacroName, sarg1, sarg2 ....

If sMacroName is something like "Sheet1.Macro2" all is well. However if I
try something like sMacroName = "e:\temp\B.XLS!Sheet1.Macro2" I get one of
several issues. First error I've seen while attempting in VB6 is:

"The file cannot be opend because your virus scanner has detected a problem
with the file".

If instead I attempt this via VBA code within Excel itself like so:

Run "e:\delme\tryme3.xls!ThisWorkbook.Hello"

I get an error "The macro 'e:\delme\tryme3.xls!ThisWorkbook.Hello' cannot be
found.

I know within the VBA of Excel is at least gettting to the point where it
opens the file, but for some reason it says it cannot find the macro. If I
rename the file to something that does not exist and run the same line of
code above, I get the same error as within the VB6 code, namely:
"The file cannot be opend because your virus scanner has detected a problem
with the file".

Any help is greatly appreciated.

Allen Segall
(Softinterface, Inc.)




All times are GMT +1. The time now is 03:03 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com