问与答120:如何将嵌入式的Word文档另存为单独的Word文件?

excelperfect

Q在Excel工作表中有一个作为OLEObject对象的嵌入式Word文档,我想要使用VBA将这个嵌入式对象作为文件存储到硬盘中。

图1

我使用的代码如下:

Dim oleObjectAs Object

Dim wordDocument As Object

Set oleObject= ActiveWorkbook.Sheets('Sheet1').OLEObjects(1)

Set wordDocument = oleObject.Object

wordDocument.SaveAs('some filename')

如果我双击这个嵌入式OLE对象使其获取焦点,然后单击Excel工作表任意单元格使其失去焦点,再运行上面的代码,代码运行得非常好。然而,如果我关闭工作簿后,再重新打开该工作簿,必须首先双击该嵌入式对象然后单击工作表任意单元格,才能正常运行上面的代码,否则就会出现错误。

如何解决?

A:需要设置OLE对象的Verb方法并选择任意单元格。完整的代码如下:

Sub test()

Dim oleObject As Object

Dim wordDocument As Object

Set oleObject =ActiveWorkbook.Sheets('Sheet1').OLEObjects(1)

oleObject.Verb Verb:=xlPrimary

ActiveSheet.Range('A1').Select

Set wordDocument = oleObject.Object

wordDocument.SaveAs ('somefilename')

End Sub

注:今天的问题整理自vbaexpress.com,供有兴趣的朋友学习参考。

(0)

相关推荐