Vba 用不同的名称保存相同名称的附件
我使用此链接中的现有脚本:将电子邮件中的所有附件保存到目录中 当收到包含两个同名不同文件的电子邮件时,其中一个附件被保存,另一个被覆盖 我试图检查现有文件,并在下一个文件末尾添加一个数字。我删除了脚本的那部分 我试图在文件名中添加一个随机生成的整数,以及一个时间戳,以使每个文件唯一 当前脚本如下:Vba 用不同的名称保存相同名称的附件,vba,outlook,Vba,Outlook,我使用此链接中的现有脚本:将电子邮件中的所有附件保存到目录中 当收到包含两个同名不同文件的电子邮件时,其中一个附件被保存,另一个被覆盖 我试图检查现有文件,并在下一个文件末尾添加一个数字。我删除了脚本的那部分 我试图在文件名中添加一个随机生成的整数,以及一个时间戳,以使每个文件唯一 当前脚本如下: Public Sub SaveAttachmentsToDisk(MItem As Outlook.MailItem) Dim oAttachment As Outlook.Attachment Di
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
在与附件序列号相关的
日期戳
末尾添加额外的唯一标识符
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
之后)
您对随机数的问题是,您在循环之外设置了它,因此每个附件将获得相同的数字(之前随机设置)。此外,也不能保证下一个随机数与上一个不同(这就是随机性的问题——没有保证)。我猜想,如果你应用我上面的方法,你就不需要随机数了