Как определить запись календаря в MS Outlook с помощью VBA? - PullRequest
0 голосов
/ 15 января 2019

У меня есть код, который перебирает все отправленные электронные письма MS Outlook и выполняет некоторые процедуры для каждого из них. Мой код ломается, но если в папке «Отправленные» есть запись календаря, что приводит к ошибке.

Run-time error '13': Type mismatch.

Ребята, знаете ли вы, как определить, является ли элемент в моей папке "Отправленные" записью календаря, чтобы я мог ее пропустить?

sub test()


Dim oApp As Outlook.Application
Set oApp = CreateObject("Outlook.application")


Dim olFolder As Outlook.MAPIFolder
Set olFolder = oApp.GetNamespace("MAPI").GetDefaultFolder(olFolderSentMail)

Dim email_cnt As Long: email_cnt = olFolder.Items.Count


for t = 1 to email_cnt

    Dim oMail As Outlook.MailItem
    Set oMail = olFolder.Items.Item(t)        
    'do something;

Next t

End Sub

1 Ответ

0 голосов
/ 15 января 2019

Убедитесь, что oMail.Class = 43 (43 является olMailItem). Вам также нужно избегать циклического прохождения всех элементов в папке (зачем вам это нужно?) И избегать использования многоточечной нотации (olFolder.Items.Item) - кэшируйте коллекцию Items в переменной перед входом в цикл.

...