【问题标题】:Document type not defined in VBAVBA 中未定义的文档类型
【发布时间】:2018-04-13 01:49:30
【问题描述】:

我正在关注我在related Stack Exchange question 中找到的mail merge 工作,该工作看起来与我想做的事情相似,但我在开始时遇到了麻烦。我已将问题缩小到以下范围...

Sub TestEmailer()
    Dim Source As Document, Maillist As Document, TempDoc As Document
End Sub

出现错误“未定义用户定义的类型”。

似乎我缺少参考,但推荐的参考“Microsoft Office 16.0 对象库”在我启用它时似乎无法解决问题。

此 Document 对象是否已移至其他库?以后如何找到合适的库?

【问题讨论】:

    标签: vba excel email office365 document


    【解决方案1】:

    如果您在 Excel 中执行此操作,则需要添加对 Microsoft Word 16.0 Object Library 的引用,然后使用:

    Sub TestEmailer()
        Dim Source As Word.Document, Maillist As Word.Document, TempDoc As Word.Document
    End Sub
    

    默认情况下,每个应用程序只会加载它自己的对象,以及其他常见的 Office 对象。如果您想使用来自另一个应用程序的其他对象,您需要添加对该应用程序对象库的引用或使用后期绑定。

    在这种情况下,我建议提前绑定(手动添加引用),以便您在代码中获得 IntelliSense 的好处,这将使跨应用程序工作更容易。

    【讨论】:

    • 谢谢。快速的问题。手动添加参考是什么意思?这是我的第一个 VBA 项目。
    • 早期绑定与后期绑定。它本身就是一个完整的主题,所以最好用谷歌搜索它。 TL;DR = 早期绑定要求您在设计时通过工具->参考并自己添加库。后期绑定是一种在代码中创建对象的方法,它会在编译时自动查找和引用所需的库。
    猜你喜欢
    • 2023-03-09
    • 1970-01-01
    • 2017-10-30
    • 2021-06-29
    • 2013-01-22
    • 2014-08-07
    • 1970-01-01
    • 2023-03-29
    • 2016-08-24
    相关资源
    最近更新 更多