我在Excel上制作了一个小宏,目的是在Outlook中寻找具有特定主题和特定接收时间的邮件。几乎与每个人都可以很好地工作,但与我的同事之一的ookook收件箱却有bug。
我写的代码:
For Each olMail In oDefaultFolder.Items
If olMail.Subject = "DDJ of " & date_target Then
MyAr = Split(olMail.Body, vbCrLf)
For i = LBound(MyAr) To UBound(MyAr)
Sheets("DDJ").Cells(i + 1, 1).Value = MyAr(i)
Next i
ddj_empty = False
Exit For
End If
Next olMail
我尝试使用3个Outlook帐户,但没有pb,但是使用了第4个帐户,它就出错了。我手动删除了一个帐户,但从约会conf到邮件似乎有很多,这似乎很正常
它返回的pb突出显示“Next oLMail”,并说oLMail = Nothing
我希望我的宏继续运行并继续其搜索,并且在处理此问题时遇到了一些麻烦。
我一直在寻找类似于“如果邮件=什么然后我= i + 1 ..下一个我”的smtg,但是我在Google上找到了“继续”,但是我的Excel无法识别继续功能?所以我不知道该怎么办
有什么建议吗?
非常感谢
最佳答案
Outlook文件夹可以包含different item types。不同的类型不相同。例如,MeetingItem支持MeetingWorkspace property。 MailItems不要。
在使用olMail
之前,最好使用vba TypeName函数检查类型。
' Perform action on specific item types only.
' TESTED: Outlook 2010.
Sub CheckItemType()
Dim i As Object ' Used to loop over items.
Dim iType As String ' Used to hold type of above item.
' Loop over all items in the inbox.
For Each i In Outlook.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Items
iType = TypeName(i)
' Limit actions to required types.
If iType = "MailItem" Or iType = "MeetingItem" Then
' Your logic.
End If
Next
End Sub
关于vba - VBA Excel-Outlook-对于每个-返回邮件=没有-错误mngt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40788292/