Excel 变量的发送方名称给出错误438';对象没有';不支持此属性或方法';
每天,我和一位同事都会收到一封格式相同的邮件 如果邮件满足以下要求,我想导入邮件的时间/日期和主题:Excel 变量的发送方名称给出错误438';对象没有';不支持此属性或方法';,excel,vba,outlook,Excel,Vba,Outlook,每天,我和一位同事都会收到一封格式相同的邮件 如果邮件满足以下要求,我想导入邮件的时间/日期和主题: 主题包含“顺序” 接收时间>=(基于范围) 接收时间0和OutlookMail.ReceivedTime>=范围(“开始日期”)。值和OutlookMail.ReceivedTime首先,您不应该循环浏览文件夹中的所有项目-使用项目。查找/FindNext或项目。限制 其次,您可以在文件夹中包含除MailItem以外的项目-您还可以包含ReportItem(用于NDR)和MeetingItem
- 主题包含“顺序”
- 接收时间>=(基于范围)
- 接收时间0和OutlookMail.ReceivedTime>=范围(“开始日期”)。值和OutlookMail.ReceivedTime首先,您不应该循环浏览文件夹中的所有项目-使用
或项目。查找/FindNext
项目。限制
其次,您可以在文件夹中包含除
以外的项目-您还可以包含MailItem
(用于NDR)和ReportItem
(用于约会邀请/更新)。MeetingItem
请先检查
property=43(OutlookMail.Class
)。您对项目的建议。Find/FindNext效果很好,使宏运行得更快。438错误确实是通过首先检查OutlookMail.Class属性来解决的。谢谢你的帮助!如果答案回答了您的问题,请将其标记为答案。谢谢olMailItem
Sub Outlook() Dim OutlookApp As Outlook.Application Dim OutlookNamespace As Namespace Dim Folder As MAPIFolder Dim OutlookMail As Variant Dim strMailboxName As String Dim i As Integer strMailboxName = "OutlookName" 'Name of mailaccount Set OutlookApp = New Outlook.Application Set OutlookNamespace = OutlookApp.GetNameSpace("MAPI") Set Folder = Session.Folders(strMailboxName) Set Folder = Folder.Folders("FolderName") 'Name of folder i = 1 For Each OutlookMail In Folder.Items If InStr(OutlookMail.Subject, "Order") > 0 And OutlookMail.ReceivedTime >= Range("start_date").Value And OutlookMail.ReceivedTime <= Range("end_date") And OutlookMail.Sender = Range("Sender") Then Range("Date_and_time").Offset(i, 0).Value = OutlookMail.ReceivedTime Range("Date_and_time").Offset(i, 0).VerticalAlignment = xlTop Range("Subject").Offset(i, 0).Value = OutlookMail.Subject Range("Subject").Offset(i, 0).VerticalAlignment = xlTop i = i + 1 End If Next OutlookMail Set Folder = Nothing Set OutlookNamespace = Nothing Set OutlookApp = Nothing End Sub