想要 Word 文档对象,但代码默认为 DAO 文档对象
Want Word Document object, but code defaults to DAO Document object
我正在使用 Outlook 和自动化 Word (2010)。
有一个问题,因为代码默认为 DAO 的 Document 对象,但我想使用 Word 的 Document 对象(两个应用程序都有一个 "Document" 对象 - 但不是同一个对象)。
当我为 Document 对象设置 Dim 时,我会看到两个 "Document" 选项,无论我选择哪一个,代码中的结果都是 DAO Document 对象及其成员。
示例
Dim objDoc as Document <--------- Intellisense shows two "Document" Options
objDoc. <------------- Intellisense shows only DAO members (AllPermissions etc)
我在 Word 中确实有一个 DAO 3.6 对象库的参考集,因为我在其他宏(不是这个)中使用它,所以我不想删除这个库。我有 运行 这些宏之一,它应该关闭数据库并将其设置为空 - 但没有解决问题。
还尝试在主题代码中打开和关闭数据库,如下所示。
Dim db As DAO.DataBase
Set db = OpenDatabase("C:\Users\...........')
db.Close
Set db = Nothing
如何让代码默认为普通的 Word 文档对象。
您只需为 Document
指定库,我会为两者都这样做,而不是假设 DAO 将始终是默认库:
Dim d As DAO.Document
' ^^^^
Debug.Print d.UserName
Dim e As Word.Document
' ^^^^^
e.AcceptAllRevisions
当我这样做时,在引用集的情况下,d
的 Intellisense 建议与 e
的不同。
Intellisense 建议和对象库引用发生在您的代码 运行 之前。因此,无论您打开的是数据库还是 Word 文档,您都会得到相同的建议。以防万一,在每个源文件的开头,添加
Option Explicit
这会导致编译器在您尝试使用未声明的变量时报错,这可能有助于您的调试。
我正在使用 Outlook 和自动化 Word (2010)。
有一个问题,因为代码默认为 DAO 的 Document 对象,但我想使用 Word 的 Document 对象(两个应用程序都有一个 "Document" 对象 - 但不是同一个对象)。
当我为 Document 对象设置 Dim 时,我会看到两个 "Document" 选项,无论我选择哪一个,代码中的结果都是 DAO Document 对象及其成员。
示例
Dim objDoc as Document <--------- Intellisense shows two "Document" Options
objDoc. <------------- Intellisense shows only DAO members (AllPermissions etc)
我在 Word 中确实有一个 DAO 3.6 对象库的参考集,因为我在其他宏(不是这个)中使用它,所以我不想删除这个库。我有 运行 这些宏之一,它应该关闭数据库并将其设置为空 - 但没有解决问题。
还尝试在主题代码中打开和关闭数据库,如下所示。
Dim db As DAO.DataBase
Set db = OpenDatabase("C:\Users\...........')
db.Close
Set db = Nothing
如何让代码默认为普通的 Word 文档对象。
您只需为 Document
指定库,我会为两者都这样做,而不是假设 DAO 将始终是默认库:
Dim d As DAO.Document
' ^^^^
Debug.Print d.UserName
Dim e As Word.Document
' ^^^^^
e.AcceptAllRevisions
当我这样做时,在引用集的情况下,d
的 Intellisense 建议与 e
的不同。
Intellisense 建议和对象库引用发生在您的代码 运行 之前。因此,无论您打开的是数据库还是 Word 文档,您都会得到相同的建议。以防万一,在每个源文件的开头,添加
Option Explicit
这会导致编译器在您尝试使用未声明的变量时报错,这可能有助于您的调试。