Я хочу удалить почту, когда поступит ответ. Это фрагмент моего кода. Я не понимаю, почему для каждого пробегов в ошибка 13Ошибка 13 in для каждого vba outlook
Sub test222()
Dim oapp As Outlook.Application
Dim osession As Outlook.NameSpace
Dim oInbox As Outlook.MAPIFolder
Dim oSentItem As Outlook.MAPIFolder
Dim omail As Outlook.MailItem
Dim conID As String
Set oapp = New Outlook.Application
Set osession = oapp.GetNamespace("MAPI")
Set oInbox = osession.GetDefaultFolder(olFolderInbox)
Set oSentItem = osession.GetDefaultFolder(olFolderSentMail)
i = 1
For Each omail In oSentItem.Items
If (omail.Subject = "Delivered: aa") Then
Msgbox "Hi"
omail.Delete
Exit For
Else
i = i + 1
End If
Next
End Sub
Протестировано, но столкнулся с некоторыми другими проблемами. Это не работает с квитанциями о доставке, работает только один раз: когда я тестирую его с некоторыми предметами, я получаю msgbox, но почта не удаляется. Когда я снова запускаю макрос, ничего не происходит. ** Однако основная проблема заключается в том, что она не работает с доставкой recipts. ** – ZZA
Я не могу воспроизвести проблему, с которой вы столкнулись, но я предлагаю проверить тип доставки квитанции. Это MailItem? – Kapol
Предполагается, что это будет ReportItem. Я пробовал этот код [link] http://stackoverflow.com/questions/78924/when-is-a-mailitem-not-a-mailitem, но был изменен с помощью: 'If TypeName (msg) = ReportItem Then MsgBox" 2 «' в цикле for, но он ничего не делает. – ZZA