根据 excel 中的数据更改电子邮件的类别标签

Changing the category tag of an email according to data in excel

所以我基本上想遍历收件箱中的每封电子邮件,直到 A 列中的主题行与电子邮件的主题行匹配。找到匹配项后,它将沿着 C 列中的同一行查找,并根据此处找到的内容(是、否或多个)更改电子邮件的类别。

在宏具有 运行.

之前,每封邮件都被标记为 "ATLG"

下面的代码是一个正在进行的工作,但我不知道从这里去哪里。有什么建议吗?

Dim mail As Outlook.MailItem
Dim fld As Outlook.MAPIFolder

For Each mail In fld.Items
With mail
If mail.Subject = Sheets("Mail Report").Range("A65000").End(xlUp).Value Then
If Sheets("Mail Report").Range("C65000").End(xlUp).Value = "YES" Then
mail.Category = "ATLG"
If Sheets("Mail Report").Range("C65000").End(xlUp).Value = "NO" Then
mail.Category = "MAN"
If Sheets("Mail Report").Range("C65000").End(xlUp).Value = "MULTIPLE" Then
mail.Category = "MULT"
Next mail

这是您正在尝试的吗? (未测试)

Dim mail As Outlook.MailItem
Dim fld As Outlook.MAPIFolder
Dim ws As Worksheet


Set ws = Sheets("Mail Report")

Set fld = GetObject("", "Outlook.Application") _
.GetNamespace("MAPI").Session.PickFolder
If fld Is Nothing Then
   MsgBox "No Inbox selected"
   Exit Sub
End If

'~~> Find last row in Col A
lRow = ws.Range("A" & ws.Rows.Count).End(xlUp).Row

For Each mail In fld.Items
    With mail
        '~~> Loop through values of Col A
        For i = 2 To lRow
            '~~> Match subject
            If mail.Subject = ws.Range("A" & i).Value Then
                Select Case UCase(ws.Range("B" & i).Value)
                    Case "YES": mail.Categories = "ATLG"
                    mail.Save
                    Case "NO": mail.Categories = "MAN"
                    mail.Save
                    Case "MULTIPLE": mail.Categories = "MULT"
                    mail.Save
                End Select

                Exit For
            End If
        Next i
    End With
Next mail

我终于让你上面的代码工作了。就像在每个 Case 行下面使用 mail.Save 一样简单。