Outlook VBA如果主题匹配,如何遍历收件箱并从电子邮件地址列表

Sup*_*ero 7 outlook vba

我正在尝试使用Outlook VBA循环收件箱,如果主题与字符串匹配,则列出来自电子邮件地址.到目前为止,这是谷歌搜索,但它没有工作:

Dim objNS As Outlook.NameSpace
Set objNS = GetNamespace("MAPI")
Set Items = objNS.GetDefaultFolder(olFolderInbox).Items

Dim oFolder As Outlook.MAPIFolder
Dim oMail As Outlook.MailItem
For Each oMail In Items
    Debug.Print oMail.SenderEmailAddress
Next
Run Code Online (Sandbox Code Playgroud)

有人知道为什么我在运行时出现类型不匹配错误?

L42*_*L42 14

如评论所述,请尝试在代码中加入MailItem测试:

Dim objNS As Outlook.NameSpace: Set objNS = GetNamespace("MAPI")
Dim olFolder As Outlook.MAPIFolder
Set olFolder = objNS.GetDefaultFolder(olFolderInbox)
Dim Item As Object

For Each Item In olFolder.Items
    If TypeOf Item Is Outlook.MailItem Then 
        Dim oMail As Outlook.MailItem: Set oMail = Item
        Debug.Print oMail.SenderEmailAddress
    End If
Next
Run Code Online (Sandbox Code Playgroud)

编辑1:正如德米特里所建议的那样,你也可以使用:

If Item.Class = 43 Then
Run Code Online (Sandbox Code Playgroud)

代替

If TypeOf Item Is Outlook.MailItem Then
Run Code Online (Sandbox Code Playgroud)