在 Outlook 中使用宏将附件保存到电子邮件

Save attachement to email using macro in 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。我很乐意就发生这种情况的原因获得任何建议。

您必须设置对象,因为您只是创建它,而不是填充它。

所以它不知道它应该与 MailItem 有任何关系。

另外还有一个附件集要过一遍,看:

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