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,供有兴趣的朋友学习参考。
欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。