从已经打开但未保存的Excel文件访问数据在单独的实例中

时间:2018-06-18 21:49:02

标签: excel vba excel-vba

我在excel的不同实例中有两个excel文件。我想从一个excel实例获取数据到另一个实例。这看起来很简单,因为我知道我想从中提取数据的文件的路径。但是,我想从中提取数据的文件由一个单独的程序使用,它打开我要从中拉出的文件(模板),填充它,但不保存它。所以每次这个外部程序运行时,它都使用我想要从中提取数据的文件,但由于它从不保存它,我很难从模板文件中提取数据。我已经使用了getObject()函数,它成功地从文件中提取数据,因为我知道文件路径,但字段当然是空的,因为当外部程序使用文件时,它只填充数据但从不保存它。我怎么能做我要问的事?

1 个答案:

答案 0 :(得分:0)

以Scotts为基础suggestion

  1. 由于您知道其他工作簿的完整路径和名称,因此请使用GetObject来引用它
  2. 使用.SaveCopyAs保存
  3. 在本地实例中打开已保存的副本
  4. 此代码包含在Excel实例中运行的文件

    Sub Demo()
        Dim wbRemote As Workbook
        Dim wbLocal as Workbook
        ' Get reference to the workbook running in the other instance of Excel
        Set wbRemote = GetObject("C:\data\Temp\TemplateBook.xlsx")
        ' Save a copy
        wbRemote.SaveCopyAs "C:\data\Temp\Temp.xlsx"
        ' remove reference
        Set wbRemote = Nothing
    
        ' open copy in this instance
        Set wbLocal = Application.Workbooks.Open("C:\data\Temp\Temp.xlsx")
    
        ' work with object wbLocal 
        ' ...
    
    End Sub