2017-01-31 72 views
1

宏,我想創造出運行以下腳本規則:保存attachement電子郵件使用Outlook

Public Sub SaveToDisk(itm As Outlook.MailItem) 
Dim objAtt As Outlook.Attachment 
Dim saveFolder As String 
Dim dateFormat 

dateFormat = Format(Now, "yyyy-mm-dd") 

saveFolder = "c:\temp\" 

objAtt.SaveAsFile saveFolder & "\" & dateFormat & ".xls" 

Set objAtt = Nothing 

End Sub 

這應該將附件保存到c:\ temp文件夾,但它並沒有因爲objAtt工作價值無所謂。由於某些原因,該行:

Dim objAtt As Outlook.Attachment 

不會將附件分配給obAtt變量,因爲我找不到它的原因。這裏的附件是一個.csv文件。

我在Windows 10上使用Outlook 2016。我很樂意爲此發生任何建議。

回答

4

你必須設置對象,因爲你只要創建它,而不是填充它。

因此它不知道它應該與MailItem有任何關係。

更進一步,有Attachement的集合穿過去,請參見:

Public Sub SaveToDisk(ItM As Outlook.MailItem) 
Dim oAttS As Outlook.Attachments 
Dim objAtt As Outlook.Attachment 
Dim saveFolder As String 
Dim dateFormat 

dateFormat = Format(Now, "yyyy-mm-dd") 
saveFolder = "c:\temp\" 

Set oAttS = ItM.Attachments 

For Each objAtt In oAttS 
    objAtt.SaveAsFile saveFolder & "\" & dateFormat & "_" & objAtt.FileName 
Next objAtt 

Set oAttS = Nothing 
Set objAtt = Nothing 

End Sub 
相關問題