Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 用不同的名称保存相同名称的附件_Vba_Outlook - Fatal编程技术网

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

您对随机数的问题是,您在循环之外设置了它,因此每个附件将获得相同的数字(之前随机设置)。此外,也不能保证下一个随机数与上一个不同(这就是随机性的问题——没有保证)。我猜想,如果你应用我上面的方法,你就不需要随机数了