【问题标题】:Automated Outlook Attachment Download with Email Date带有电子邮件日期的自动 Outlook 附件下载
【发布时间】:2021-10-28 04:09:15
【问题描述】:

我希望这里有人可以帮助我解决这个请求。我发现有人在https://www.pixelchef.net/content/rule-autosave-attachment-outlook 分享的代码可以帮助我设置规则以根据规则自动下载附件。

代码工作正常,但我想调整它而不是像这样命名文件 2021-08-28 10-00Test 来格式化像这样 Test_2021 的文件名-08-28 10-00。该代码目前还在根据规则运行的时间添加时间戳。我想将其更改为从电子邮件中获取日期和时间。

代码如下:

Public Sub saveAttachtoDisk(itm As Outlook.MailItem)
    Dim objAtt As Outlook.Attachment
    Dim saveFolder As String
    Dim dateFormat
    dateFormat = Format(Now, "yyyy-mm-dd H-mm")
    saveFolder = "C:\path"
    For Each objAtt In itm.Attachments
        objAtt.SaveAsFile saveFolder & "\" & dateFormat & objAtt.DisplayName
        Set objAtt = Nothing
    Next
End Sub

感谢任何帮助。

【问题讨论】:

    标签: vba outlook rules


    【解决方案1】:

    您可以使用MailItem.ReceivedTime 属性,该属性返回一个Date,指示接收项目的日期和时间。

    Public Sub saveAttachtoDisk(itm As Outlook.MailItem)
        Dim objAtt As Outlook.Attachment
        Dim saveFolder As String
        Dim dateFormat
        dateFormat = Format(itm.ReceivedTime, "yyyy-mm-dd H-mm")
        saveFolder = "C:\path"
        For Each objAtt In itm.Attachments
            objAtt.SaveAsFile saveFolder & "\" & dateFormat & objAtt.DisplayName
            Set objAtt = Nothing
        Next
    End Sub
    

    我在您的代码中注意到了另外两个方面:

    1. 您的规则可以处理所有类型的 Outlook 项目 - 约会、会议请求、文档、邮件等。因此,添加类型检查以防止在处理不受支持的项目类型时出现任何意外结果是有意义的。
    2. 确保附件的文件名具有唯一的名称以用于保存。该文件夹不能包含两个具有相同名称的文件,而电子邮件可能包含两个具有相同显示名称的附件。

    【讨论】:

    • 这适用于来自电子邮件日期和时间的时间戳。但格式仍然是 yyyy-mm-dd H-mmFIleName.xlsx 我怎样才能让它以这种格式命名文件。文件名_yyyy-mm-dd H-mm.xlsx ?我尝试切换 &dateFormat & objAtt.DisplayName 的顺序,但它命名文件 FIleName.xlsxyyyy-mm-dd H-mm。非常感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-16
    • 2021-07-16
    • 1970-01-01
    • 1970-01-01
    • 2019-06-18
    • 2020-07-20
    • 1970-01-01
    相关资源
    最近更新 更多