![]() |
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.) |
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