Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
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. |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
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. |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
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. |
#4
Posted to microsoft.public.excel.programming
|
|||
|
|||
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. |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
How to run macro from Add-In when Excel opened workbook? | Excel Programming | |||
Macro in Excel to check if another workbook is opened. | Excel Programming | |||
Macro won't run in Excel 2000 when workbook opened via URL | Excel Programming | |||
Load a range of cells into a dataset with an opened workbook instance. | Excel Programming | |||
Set up Excel to start new instance for each new file opened. | Excel Discussion (Misc queries) |