如何使用VBA在MS Outlook中标识日历项?

时间:2019-01-15 01:33:58

标签: vba ms-access outlook outlook-vba

我有一个代码循环遍历所有已发送的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 :(得分:2)

检查oMail.Class = 43(43是olMailItem)。您还需要避免循环访问文件夹中的所有项目(为什么要这样做?),并避免使用多点符号(olFolder.Items.Item)-在进入循环之前将Items集合缓存在变量中。