2016-09-29 50 views
3

我正在使用VBA代碼將Outlook郵件中的任何附件下載到特定文件夾。保存最新郵件附件

我打電話給「運行腳本」Outlook規則中的代碼,我已經定義了哪些郵件必須工作。

的代碼從一個新的工程,以舊的方式提供我最古老的附件,而不是最新的附件。這是針對每封郵件中具有相同名稱的附件。

應我添加什麼下面的代碼,以便它使在舊到新排序,下載新的附件來覆蓋舊的附件名稱相同。

Public Sub saveAttachtoDisk(itm As Outlook.MailItem) 
Dim objAtt As Outlook.Attachment 
Dim saveFolder As String 
saveFolder = "E:\Projects\Takeda\Data\Zipped Incremental data\incremental\"  
For Each objAtt In itm.Attachments   
    objAtt.SaveAsFile saveFolder & "\" & objAtt.DisplayName   
    Set objAtt = Nothing  
Next 
End Sub 
+1

規則將處理收到的項目。最近接收的項目中的附件將是最後保存的附件。我相信問題中所描述的問題不會發生。你如何按逆時間順序處理項目?你是否也運行已經收到項目的文件夾上的代碼? – niton

+0

如果該項目有多個同名的附件,然後查找datelastmodified文件 – 0m3r

回答

0

考慮看看itm's附件集合,它有一個count財產保存附件的計數。你可以得到計數,然後在你的for循環中倒計數。在您的for循環中,只需使用索引引用附件對象即可引用附件對象中的各個附件項目:

Dim attachmentCount as integer  
Dim saveFolder As String 
saveFolder = "E:\Projects\Takeda\Data\Zipped Incremental data\incremental\" 
attachmentCounter = itm.Attachments.count  
For i = attachmentCounter to 1 Step -1   
    itm.Attachments(i).SaveAsFile saveFolder & "\" & itm.Attachments(i).DisplayName   

Next