首页 > 解决方案 > 如何将具有不同条件的附件保存到 Outlook 中的两个不同文件夹中?

问题描述

我每天在 Outlook 中收到 2 个不同的文件转发给我。我目前使用下面的代码自动将符合条件的附件下载到驱动器上的文件夹中。

我想知道是否有办法编辑它,以便我可以将不同的文件保存到两个不同的文件夹中。即主题为A的电子邮件=>将附件保存到文件夹A,主题为B的电子邮件=>将附件保存到文件夹B。

Public Sub SaveOutlookAttachmentsToDisk(MItem As Outlook.MailItem)
    Dim oOutlookAttachment As Outlook.Attachment
    Dim sSaveAttachmentsFolder As String
    sSaveAttachmentsFolder = "C:\Users\mason\Desktop\Email Pricing\"
    For Each oOutlookAttachment In MItem.Attachments
        oOutlookAttachment.SaveAsFile sSaveAttachmentsFolder & 
        oOutlookAttachment.DisplayName
    Next
End Sub

我对VBA一无所知,我只是在网上找到了这段代码。

标签: vbaoutlook

解决方案


由于它是一个二进制标准(A 或 B),我们不需要考虑两个字符串:如果它包含 A,则保存到folderA. 否则(这意味着它包含 B)保存到folderB.

Public Sub SaveOutlookAttachmentsToDisk(MItem As Outlook.MailItem)

    Dim oAttach As Outlook.Attachment
    Dim FolderA As String, FolderB As String, StringA As String

    FolderA = "C:\Users\mason\Desktop\Email Fast Racks\"
    FolderB = "C:\Users\mason\Desktop\Email FTS Pricing\"
    StringA = "Fast Racks East Coast"
    For Each oAttach In MItem.Attachments

            If UCase(oAttach.FileName) Like "*.CSV" Then
                If InStr(MItem.Subject, StringA) > 0 Then
                    oAttach.SaveAsFile FolderA & oAttach.DisplayName
                Else
                    oAttach.SaveAsFile FolderB & oAttach.DisplayName
                End If
            End If

    Next oAttach

End Sub


推荐阅读