2017-06-19 608 views
0

我运行下面的脚本来保存邮件到达时的Outlook附件但我经常遇到运行时错误'-2147024864(80070020),它永远停止Outlook电子邮件的流入。请指教如何摆脱。获取“运行时错误”-2147024864(80070020),其中保存Outlook附件上的Outlook附件

Sub saveAttachtoDisk(itm As Outlook.MailItem) 
Dim objAtt As Outlook.Attachment 
Dim saveFolder As String 
saveFolder = "C:\Email\" 

    For Each objAtt In itm.Attachments 

      objAtt.SaveAsFile saveFolder & "\" & objAtt.DisplayName 

      Set objAtt = Nothing 
    Next 
End Sub 

enter image description here

+0

可能有人请提供他们的意见。 – RKP

+0

您将文件夹保存为“C:\ Email \”,但稍后再添加第二个斜杠:您的SaveAsFile因此为:“C:\ Email \\ foo。***”使用objAtt.SaveAsFile saveFolder&objAtt.DisplayName – Tragamor

+0

感谢你的建议,我现在会尝试。 – RKP

回答

0

试试这个代码,请

它打印每个附件的名称它保存附件之前

按ctrl-G,看看那里的打印输出发送

检查的最后一个文件名打印程序崩溃时,“立即窗口”

它可以提供一些见解

Sub saveAttachtoDisk(itm As Outlook.MailItem) 
    Dim objAtt As Outlook.Attachment 
    Dim saveFolder As String 
    saveFolder = "C:\Email\" 

    For Each objAtt In itm.Attachments 

     debug.print objAtt.DisplayName  ' print attachment name to "immediate window" 

     objAtt.SaveAsFile saveFolder & "\" & objAtt.DisplayName 

    Next 
    Set objAtt = Nothing 
End Sub