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

所以我基本上想循环收件箱中的每个电子邮件,直到列A中的主题行匹配电子邮件的主题行。 当它find一个匹配的时候,它会沿着C列的同一行查找,根据这里find的(YES,NO或MULTIPLE),电子邮件的类别将会改变。

在macros运行之前,每封邮件都被视为“ATLG”。

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

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 

Excel信息

这是你正在尝试? ( 未经testing

 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 

我终于得到了上面的代码工作。 使用mail.Save很简单, mail.Save在每个Case行的下面。