在 Office 2016 中引用 Outlook 的 Excel VBA 代码会导致"287"运行时错误



我有一个引用Outlook对象的Excel VBA脚本。这曾经在以前的 Office 版本中运行。

使用Office 2016,我得到:

运行时错误"287":
应用程序定义或对象定义的错误

这是我代码的一部分:

Dim olApp As Outlook.Application
Dim olNS As Outlook.Namespace
Dim Rec As Outlook.Recipient
Dim olGAL As Outlook.AddressList
Set olApp = Outlook.Application
Set olNS = olApp.GetNamespace("MAPI")
Set olGAL = olNS.GetGlobalAddressList
Set Rec = olNS.CreateRecipient(Cells(1, 1))
Rec.Resolve

单元格 (1,1( 包含有效的电子邮件地址。

"287"错误出现在Rec.Resolve

我在工具/参考中签Microsoft Office 16.0对象库。

我在 Outlook 中的"编程访问"下检查了"信任中心设置"。有三个关于可疑活动处理的单选按钮选项,它们都是未选中的。我的防病毒状态设置为"有效"。

为了确保您正在处理一个有效的字符串(不为空(,我建议声明一个字符串变量:

Dim recipient as String 
Set recipient = Cells(1, 1)
MsgBox recipient
Set Rec = olNS.CreateRecipient(recipient)
Rec.Resolve

办公室或展望 PIA 中没有任何更改。您只需要根据系统上使用的Outlook版本替换Outlook COM引用。解析方法保持不变。

你从不初始化olApp变量。 替换行

Set olApp = Outlook.Application

Set olApp = CreateObject("Outlook.Application")

最新更新