【问题标题】:Save same name attachments with different name用不同名称保存同名附件
【发布时间】:2018-11-14 13:00:11
【问题描述】:

我使用此链接中的现有脚本:https://www.extendoffice.com/documents/outlook/3747-outlook-auto-download-save-attachments-to-folder.html 将电子邮件中的所有附件保存到目录中。

当收到一封包含两个同名不同文件的电子邮件时,其中一个附件被保存,一个被覆盖。

我尝试检查现有文件并在下一个文件的末尾添加一个数字。我删除了这部分脚本。

我尝试在文件名中添加一个随机生成的整数,以及一个时间戳,以使每个文件都是唯一的。

当前脚本如下:

Public Sub SaveAttachmentsToDisk(MItem As Outlook.MailItem)
Dim oAttachment As Outlook.Attachment
Dim sSaveFolder As String
Dim date_now As Date
Dim dateStamp As String
Dim LRandomNumber As Integer

LRandomNumber = Int((300 - 200 + 1) * Rnd + 200)
date_now = Now()
dateStamp = Format(date_now, "yyyy-mm-dd-hh-mm-ss")

sSaveFolder = "c:\filepath"
For Each oAttachment In MItem.Attachments
oAttachment.SaveAsFile sSaveFolder & dateStamp & LRandomNumber & oAttachment.DisplayName
Next
End Sub

【问题讨论】:

    标签: vba outlook


    【解决方案1】:

    dateStamp 末尾添加一个与附件序列号相关的附加唯一标识符。

    For Each oAttachment In MItem.Attachments
        oAttachment.SaveAsFile sSaveFolder & dateStamp & oAttachment.ID & LRandomNumber & oAttachment.DisplayName
    Next
    

    你也可以控制得更多一点:

    For iterator = 1 to MItem.Attachments.Count
            oAttachment.SaveAsFile sSaveFolder & dateStamp & iterator & LRandomNumber & oAttachment.DisplayName
    Next
    

    当然,在最合适的地方添加这个鉴别器(可以在LRandomNumber之后)

    您对随机数的问题是您将其设置在循环之外,因此每个附件都会获得相同的数字(之前随机设置)。此外,不能保证下一个随机数会与上一个不同(这是关于随机性的事情 - 不能保证)。我怀疑,如果你应用我上面的方法,你就不需要随机数了。

    【讨论】:

      猜你喜欢
      • 2016-08-30
      • 2014-07-12
      • 1970-01-01
      • 1970-01-01
      • 2021-10-22
      • 2010-12-10
      • 2014-02-25
      • 2016-02-04
      相关资源
      最近更新 更多