保存具有不同名称的相同名称附件

时间:2018-06-05 06:21:28

标签: vba outlook-vba

我使用此链接中的现有脚本: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

1 个答案:

答案 0 :(得分:0)

在与附件序列号相关的database.ref('topicsTasks/topic1_task1').limitToLast(10)末尾添加其他唯一标识符。

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 之后)

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

相关问题