0

我想要 Outlook 2010 的 VBA 宏代码将我的经理请求邮件从我的收件箱移动到另一个文件夹,以防我回复。

4

2 回答 2

1

下面的代码就是答案。感谢格雷厄姆市长 www.gmayor.com

它在默认收件箱中检查来自 strAddress 的消息,并将已回复的消息移动到定义为 strFolder 的收件箱的子文件夹 - 这里是“测试”。

如果要检查所有消息,请删除标记为 ' *的行

Sub MoveReplied()
Dim olItems As Outlook.Items
Dim olItem As Outlook.MailItem
Dim i As Long
Dim strFolder As String
Dim strAddress As String
    strAddress = "someoneATsomewhere.com"
    strFolder = "Test"

    Set olItems = Session.GetDefaultFolder(olFolderInbox).Items
    olItems.Sort "[Received]", True
    For i = olItems.Count To 1 Step -1
        Set olItem = olItems(i)
        If olItem.SenderEmailAddress = strAddress Then '*****
            If Not olItem.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x10810003") = 0 Then
                olItem.Move Session.GetDefaultFolder(olFolderInbox).folders(strFolder)
            End If
        End If '*****
    Next i
Cleanup:
    Set olItems = Nothing
    Set olItem = Nothing
End Sub

最好的问候 =)

于 2013-10-28T08:09:40.097 回答
1

正如@Bathsheba 提到的,规则确实是最好的解决方案。或者,如果您必须制作 VBA 宏,我建议您录制一个宏,然后根据需要在 VBA 编辑器中进行编辑:
1. 单击工具
2.录制宏。

于 2013-09-10T12:02:33.487 回答