在 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
我想创建一个规则,其中 运行 以下脚本:
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