大家,早安,
我希望我可以请你帮忙 . 我在Excel 2010中编写了一个程序来筛选所选Outlook 2010文件夹中的电子邮件,并从电子邮件(html)正文中提取信息 . 最近,我更新到Office 2016.从那时起,我在使用MailItem对象的某些属性时出错 . 我可以将电子邮件的主题拉到Excel中,但某些属性会导致“object'_mailItem”的“方法”主体失败错误(包括.Body和.To属性) . 下面是我用于诊断此问题的代码的简化版本:
Sub GatherInfo()
Dim ObjOutlook As Object
Dim MyNamespace As Object
Dim FormFolder As Object
Set ObjOutlook = GetObject(, "Outlook Application")
Set MyNamespace = ObjOutlook.GetNamespace("MAPI")
Set FormFolder = MyNamespace.PickFolder
For i = 1 To FormFolder.Items.Count
Range("A2").Select
ActiveCell.Value = FormFolder.Items(i).Subject
ActiveCell.Offset(0, 1).Value = FormFolder.Items(i).To
End Sub
这导致:运行时错误'-2147467259(80004005)':对象'_MailItem'的方法'To'失败
我做了一些研究,并想知道Outlook 2016安全设置是否应该受到责备 . 这是在Exchange服务器上运行的企业电子邮件帐户 . 你认为这可能阻止我访问电子邮件的正文/发件人吗?电子邮件的主题属性有效,但不是主体/属性,这很奇怪 .
我已经排除的事情:
1)我发送了纯文本和基于HTML的电子邮件,结果相同 .
2)我已经尝试过早地绑定Outlook对象(Dim ObjOutlook作为Outlook.Application等)
我开始在这里绝望了,似乎无法找到原因 . 任何帮助,想法,解决方案,任何事情都会受到如此赞赏 .
谢谢大家!
1 回答
避免使用多点符号并检查你是否真的有一个
MailItem
对象(你也可以有ReportItem
或MeetingItem
):