Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA Excel-Outlook-For Each-返回邮件=无-错误mngt_Vba_Email_Foreach_Error Handling_Outlook - Fatal编程技术网

VBA Excel-Outlook-For Each-返回邮件=无-错误mngt

VBA Excel-Outlook-For Each-返回邮件=无-错误mngt,vba,email,foreach,error-handling,outlook,Vba,Email,Foreach,Error Handling,Outlook,我在Excel上做了一个小宏,目的是在outlook上查找具有特定主题和特定接收时间的邮件。除了我的一个同事oulook收件箱的bug之外,几乎所有人都能很好地使用它 我写的代码是: For Each olMail In oDefaultFolder.Items If olMail.Subject = "DDJ of " & date_target Then MyAr = Split(olMail.Body, vbCrLf) For i = LB

我在Excel上做了一个小宏,目的是在outlook上查找具有特定主题和特定接收时间的邮件。除了我的一个同事oulook收件箱的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个帐户有漏洞。。我手动删除了一个,但太多了,从约会确认到邮件,这似乎很正常

它返回的pb是它突出显示“下一个oLMail”,并表示oLMail=Nothing 我想让我的宏继续并继续它的搜索,我有一些麻烦来处理这个错误

我在寻找类似于“if mail=nothing then i=i+1..next i”的smtg,但我在google上找到了“continue for”,但我的excel无法识别continue函数?所以我不知道该怎么办

有什么建议吗?
非常感谢Outlook文件夹可以包含的内容。不同的类型并不相同。例如,支持。不要

在使用
olMail
之前,最好使用vba功能检查类型

' 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

很抱歉我使用Outlook编写了代码。刚刚注意到您的示例取自Excel。TypeName和If语句是您唯一需要的位。只需将这些添加到您现有的代码中。谢谢,我会尝试一下,我会告诉您它是否修复了pb!