首页 > 解决方案 > 使用 Documents.Open 的宏不返回文档,而是返回字符串。

问题描述

我想从 Excel 宏中打开和阅读 Word 文档的段落。这是让我感到困惑的示例代码:

Sub example()

    Dim docPath
    docPath = "C:\temp\test.docx"

    Dim wordApp
    Set wordApp = CreateObject("Word.Application")

    Dim doc
    doc = wordApp.Documents.Open(docPath)

    MsgBox (TypeName(doc)) 'This line displays String. According to the documentation it should be a Document.

End Sub

根据文档, Documents.Open 方法应该返回一个可以操作的 Document。但是当我检查它的类型时,它说它返回了一个字符串。显然我不能遍历字符串的段落:

https://msdn.microsoft.com/en-us/vba/word-vba/articles/documents-open-method-word

文档有错吗?难道我做错了什么?更重要的是,如何从 Excel 宏中遍历 Word 文档的段落?

如果这很重要,我正在使用 Office 365,并且我在 C:\temp\test.docx 创建了一个小的 Word 文档。

标签: excelvba

解决方案


尝试:

Set doc = wordApp.Documents.Open(docPath)

String你得到的是你创建的对象的一些属性;可能是NameObject........插入MsgBox doc以查看它是什么。


推荐阅读