![]() |
Run Macro in another workbook already OPENED in another instance of Excel
Hello,
I know how to open another workbook in another instance of Excel and run a macro: e.g. Set xlApp = CreateObject("Excel.Application") Set wbChart = xlApp.Workbooks.Open(filename:=ThisWorkbook.Path & "\chart.xls") xlApp.Run "chart.xls!mcrUpdateES", dteClose_15, dblHI_15, dblLO_15, dblLast But how do I do this if the workbook is ALREADY OPENED in another instance of Excel? I think the problem centers on how to identify the seperate instance of Excel that is already running. i.e. it's easy to know that "xlApp" refers to the seperate instance if I'm creating that instance at run-time, but how to refer to the seperate instance if it was created before run-time. Any help greatly appreciated. Ben. |
Run Macro in another workbook already OPENED in another instance o
You should focus your attention on keeping everything in one instance of
Excel. Multiple instances will cause you nothing but grief because each instance stands alone and knows nothing of the other instance... A workbook in one instance has no (easy) way to communicate with workbooks in another instance... -- HTH... Jim Thomlinson " wrote: Hello, I know how to open another workbook in another instance of Excel and run a macro: e.g. Set xlApp = CreateObject("Excel.Application") Set wbChart = xlApp.Workbooks.Open(filename:=ThisWorkbook.Path & "\chart.xls") xlApp.Run "chart.xls!mcrUpdateES", dteClose_15, dblHI_15, dblLO_15, dblLast But how do I do this if the workbook is ALREADY OPENED in another instance of Excel? I think the problem centers on how to identify the seperate instance of Excel that is already running. i.e. it's easy to know that "xlApp" refers to the seperate instance if I'm creating that instance at run-time, but how to refer to the seperate instance if it was created before run-time. Any help greatly appreciated. Ben. |
Run Macro in another workbook already OPENED in another instance o
I tend to agree with Jim on this one, but I'll answer your question anyhow.
Use the GetObject function instead of CreateObject, like this: Set xlApp = GetObject(,"Excel.Application") -- Charles Chickering "A good example is twice the value of good advice." " wrote: Hello, I know how to open another workbook in another instance of Excel and run a macro: e.g. Set xlApp = CreateObject("Excel.Application") Set wbChart = xlApp.Workbooks.Open(filename:=ThisWorkbook.Path & "\chart.xls") xlApp.Run "chart.xls!mcrUpdateES", dteClose_15, dblHI_15, dblLO_15, dblLast But how do I do this if the workbook is ALREADY OPENED in another instance of Excel? I think the problem centers on how to identify the seperate instance of Excel that is already running. i.e. it's easy to know that "xlApp" refers to the seperate instance if I'm creating that instance at run-time, but how to refer to the seperate instance if it was created before run-time. Any help greatly appreciated. Ben. |
Run Macro in another workbook already OPENED in another instance of Excel
Ben,
Unless you have a good reason that requires more than one instance of Excel use the single instance, as the other replies have suggested. However if required, you can use GetObject to return a reference to an Excel instance, but you cannot be sure which instance you get; it is determined by the OS and should be considered random. Peter T has written about this a few times http://groups.google.co.uk/group/mic...50af98 b97529 However, as it seems you have the Path/Filename, this should do: http://groups.google.co.uk/group/mic...78af9f b56ca8 NickHK wrote in message ups.com... Hello, I know how to open another workbook in another instance of Excel and run a macro: e.g. Set xlApp = CreateObject("Excel.Application") Set wbChart = xlApp.Workbooks.Open(filename:=ThisWorkbook.Path & "\chart.xls") xlApp.Run "chart.xls!mcrUpdateES", dteClose_15, dblHI_15, dblLO_15, dblLast But how do I do this if the workbook is ALREADY OPENED in another instance of Excel? I think the problem centers on how to identify the seperate instance of Excel that is already running. i.e. it's easy to know that "xlApp" refers to the seperate instance if I'm creating that instance at run-time, but how to refer to the seperate instance if it was created before run-time. Any help greatly appreciated. Ben. |
All times are GMT +1. The time now is 09:56 AM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com