从Excel(2007)VBA保存embedded式Word文档

我创build了下面的代码,用于将Excel工作表中的embedded式Word文档导出到工作簿的path中:

Private Sub Export() Dim sh As Shape Dim objWord As Object 'Word.Document Dim objOLE As OLEObject Set sh = Sheet5.Shapes("Object 1") sh.OLEFormat.Activate Set objOLE = sh.OLEFormat.Object Set objWord = objOLE.Object objWord.Application.Visible = False objWord.SaveAs2 Filename:=ActiveWorkbook.Path & "\MyTemplate.docx", FileFormat:= _ wdFormatDocumentDefault objWord.Application.Quit End Sub 

它在Excel 2013上工作完美,但是当我尝试在Excel 2007的办公室运行它时,它给了我一个运行时错误“438”“对象不支持此属性或方法”在行objWord.SaveAs2 Filename:=ActiveWorkbook.Path & "\MyTemplate.docx", FileFormat:= wdFormatDocumentDefault

试过玩弄定义objWord,但没有运气。 有什么build议么?

使用这一个isntead:

 objWord.SaveAs Filename:=ActiveWorkbook.Path & "\MyTemplate.docx", FileFormat:= _ wdFormatDocumentDefault 

方法SaveAs2仅在2010 版中引入。

另外,如果你没有在excel vba中添加对word库的引用,你可能需要将word constant wdFormatDocumentDefault改为它的值16

 objWord.SaveAs Filename:=ActiveWorkbook.Path & "\MyTemplate.docx", FileFormat:=16