使用VBA将Excel电子表格中的嵌入式Word文档保存到磁盘

时间:2010-03-03 09:22:21

标签: excel vba object ole

我们有一个Excel电子表格,目前使用存储在公司LAN上的Word模板生成报告。这适用于内部用户,但不适用于未连接到LAN的任何人,例如笔记本电脑用户。

管理层不希望将模板作为单独的文件分发给外部用户,而是希望将其嵌入到隐藏工作表的电子表格中。然后建议在生成报告时将嵌入的模板保存到用户临时路径并从那里生成报告。

我的问题是,如何使用VBA将嵌入式Word模板保存到磁盘。这似乎是一个简单的任务,但我还没有在谷歌的任何地方找到解决方案。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

好的,我想我可能有答案,但它只在Excel 2010中测试过。

Sub SaveEmbedded()
Dim sh As Shape
Dim objWord As Object ''Word.Document
Dim objOLE As OLEObject

    ''The shape holding the object from 'Create from file'
    ''Object 2 is the name of the shape
    Set sh = ActiveSheet.Shapes("Object 2")

    ''Activate the contents of the object
    sh.OLEFormat.Activate

    ''The OLE Object contained
    Set objOLE = sh.OLEFormat.Object

    ''This is the bit that took time
    Set objWord = objOLE.Object

    ''Easy enough
    objWord.SaveAs2 Filename:="c:\docs\template.dot", FileFormat:= _
    wdFormatTemplate ''1=wdFormatTemplate
End Sub

答案 1 :(得分:-1)

检查MSDN文档。

我相信您正在寻找SaveAs方法。

这里有一个例子; MSDN - VBA Ref - SaveAs Method