0
我有一个嵌入有Word文件的Excel电子表格作为对象。 当我将该对象作为模板打开并将其保存到文档文件中时,Word标题中的名称不会更改 并且Excel中的对象会受到影响。 像这样:EXCEL,使用嵌入对象(.dot)作为报告模板
For Each OLE In ActiveSheet.OLEObjects
If InStr(1, OLE.progID, "Word.Document", vbTextCompare) > 0 Then
OLE.Verb xlVerbPrimary
Set WordDoc = OLE.Object
WordDoc.SaveAs2 "c:\somewhere\a.doc", FileFormat:=WdSaveFormat.wdFormatDocument97
Exit For
End If
Next
我预计“另存为”的称号在Word中更改后为“a.doc”,但名称仍 “在somesheet.xls文件”,并在Excel中嵌入对象随着WordDoc的进一步操作而改变。
是否可以使用嵌入式Word文件作为模板而不创建必须重新打开的中间文件?
我可以打断对象和打开的Word文件之间的连接吗?
编辑:我正在创建一个报告使用该对象作为模板。现在,SaveAs不仅会创建一个文件,还会影响模板。
目前尚不清楚你在做什么。如果使用SaveAs,则要在驱动器上的该位置创建一个文件(副本),并且需要在单独的Word实例中打开它。嵌入的对象保持不变。该副本应该发生什么?如果您想将它保留在Excel工作簿中,请复制OLE对象,然后对其进行处理。 (但是,您不能更改文件名称“Workbook.xls中的文档”。) –
“SaveAs”方法之后,在Word实例中打开的文档不是副本。打开的文档已连接并保持与Excel中的对象连接。文档的所有更改也影响对象(模板)。 我想破解文档和excel对象之间的连接。 – hennep
正如我所说的,如果你想使用作为OLE对象存储的文档的“副本”,则需要实例化Word的一个实例并打开在该实例中保存的文件。您不能“断开与OLE对象的连接”以使其独立。 –