将 Outlook 附件保存到文件系统

问题描述 投票:0回答:1

我正在尝试将收件箱或子文件夹中电子邮件的附件保存到文件系统。

我正在尝试将按钮分配给 Outlook 默认 VBA 中的代码:Module1

变体 1 不允许我创建宏,因为我在子定义中有

MItem As Outlook.MailItem

Public Sub SaveAtt(MItem As Outlook.MailItem)
    Dim oAttachment As Outlook.Attachment
    Dim sSaveFolder As String
    
    ' Set the folder where attachments will be saved
    sSaveFolder = "C:\Temp\junk\Move"  ' Change this path to your desired folder
    
    For Each oAttachment In MItem.Attachments
        oAttachment.SaveAsFile sSaveFolder & oAttachment.FileName
    Next oAttachment
End Sub

我删除了传递到子例程中的变量,但后来我得到:

未设置对象变量或 with 块。

enter image description here

目的是在收件箱中选择一个单独的邮箱项目,然后单击宏按钮。我不确定这是否可能。
我的下一个想法是将所有有趣的邮箱项目移动到收件箱的子文件夹中,并对该文件夹中的所有邮件运行一次例程(通过宏启动按钮)。

我发现了另一段代码,看起来也可以工作,但事实并非如此。

Public Sub SaveAtt()

    Dim MItem As MailItem
    Dim oAttachment As Attachment
    Dim sSaveFolder As String
    Dim oDefInbox As Folder
    Dim targetFolder As Folder
    Dim myItems As Outlook.Items
    Dim Item As Object

    Set oDefInbox = Session.GetDefaultFolder(olFolderInbox)
    'Set targetFolder = Session.GetDefaultFolder(olFolderInbox).Parent.Folders("Inbox")

    sSaveFolder = "C:\Temp\junk\Move"
    
    For Each MItem In oDefInbox.Items
        For Each oAttachment In MItem.Attachments
            oAttachment.SaveAsFile sSaveFolder & oAttachment.DisplayName
            Set oAttachment = Nothing
        Next oAttachment
    Next MItem

End Sub
vba outlook attachment
1个回答
0
投票

在第一个代码片段中,您从未初始化

MItem
变量。如果您的目的是处理选定的项目而不是收件箱中的所有项目,请更改该行

For Each MItem In oDefInbox.Items

For Each MItem In Application.ActiveExplorer.Selection

此外,您的

sSaveFolder
变量必须包含尾随
"\"

© www.soinside.com 2019 - 2024. All rights reserved.