程序A:
dim oApp1 as Excel.Application
dim oApp2 as Excel.Application
dim oApp3 as Excel.Application
...set oApp1 = new Excel.Application
set oApp2 = new Excel.Application
set oApp3 = new Excel.Application
...
创建多个Excel.Application对象实例程序B:
如何获取oApp1,oApp2,oApp3...GetObject只能获取oApp1

解决方案 »

  1.   

    如果想用GetObject来获取当前所有Excel.Application对象,我想到的只有下面两个方法:
    1、在每个对象当前打开的文档都不相同而且都可以知道的情况下,可以用
      Set oApp1=GetObject("c:\mydoc1.xls")
      Set oApp2=GetObject("c:\mydoc2.xls")
      ......
      这种方式来获取
    2、通过FindWindow来找到每个Excel并挨个激活,激活一个获取一个Excel.Application,即:
      激活Excel窗口1
      Set oApp1=GetObject(,"Excel.Application")
      激活Excel窗口2
      Set oApp2=GetObject(,"Excel.Application")
      ......
      

  2.   

    用GetObject应该也可以,已经有了一点眉目,等我喝点水回来继续
      

  3.   

    还是不行 -_-!!!
    我刚才以word为例,发现执行以下代码以后
        Set objWord = GetObject(, "Word.Application")
        Set doc = objWord.ActiveDocument

    doc.Application.Windows(1).Document
    doc.Application.Windows(2).Document
    doc.Application.Windows(3).Document
    可以取到当前三个word对象打开的三个文档,但是我用
    doc.Application.Windows(n).Application
    doc.Application.Windows(n).Parent
    等属性却总也无法获取相对应的word对象。
    既然可以得到其他word对象打开的document,那么就应该可以得到那个word对象,或许是我用的方法不对,希望大家共同来研究一下,我已经头大了! -_-!!!
      

  4.   

    excel的application也有windows属性而且用法和word的差不多,可以用.windows.count取得其个数,实在不行就先得到文档然后用
    Set oApp1=GetObject("c:\mydoc1.xls")