尝试保存到无法访问的文件夹时,规则崩溃

时间:2014-11-20 12:26:23

标签: vba email outlook

我有一个电子邮件帐户,其中包含两个别名:pod @和invoices @。将pod @收到的邮件移动到POD文件夹(Outlook文件夹,而不是HDD)。

我运行了一个脚本VBA代码,如: Save attachments to a folder and rename them

我需要为发票设置相同的规则@,以便将附件保存到另一个网络驱动器。

如果添加相同但位置不同的其他脚本,我在设置Outlook规则时无法选择任何脚本,它们将变为不可见。

我希望脚本以不同的规则运行,将附件保存到不同的网络文件夹。

OR

一个带脚本的规则,用于确定发送了哪些别名邮件,将邮件移动到特定的Outlook文件夹,然后将附件保存到不同的网络文件夹。

此外,我发现运行当前脚本时出现问题。尝试保存附件时,无法访问网络文件夹和网络文件夹,规则崩溃。

我不知道VBA或任何其他语言。

编辑:

根据以下答案:

Public Sub saveAttachtoDisk_invoices (itm As Outlook.MailItem) 
    Dim objAtt As Outlook.Attachment 
    Dim saveFolder As String Dim dateFormat
    dateFormat = Format(Now, "yyyy-mm-dd H-mm")  saveFolder = "C:\Temp\"
    on error goto ErrorHandler
    For Each objAtt In itm.Attachments    
        objAtt.SaveAsFile saveFolder & "\" & dateFormat & objAtt.DisplayName
    Next
    on error goto 0

    exit sub

ErrorHandler:
    debug.print itm.subject
    debug.print err.number & ": " & err.description & " on save line in saveAttachtoDisk_invoices"
    resume next
End Sub

我添加了一条消息,以便最终用户知道是否发生错误且文件未保存。我已将此行添加到ErrorHandler

MsgBox objAtt.DisplayName & ": " & Err.Description

将显示文件名和路径不存在的描述。

1 个答案:

答案 0 :(得分:0)

使用不同的脚本名称。您可以通过绕过因网络不可用或尝试保存不可用的附件而导致的错误来防止规则崩溃。

Public Sub saveAttachtoDisk_invoices (itm As Outlook.MailItem) 
    Dim objAtt As Outlook.Attachment 
    Dim saveFolder As String Dim dateFormat
    dateFormat = Format(Now, "yyyy-mm-dd H-mm")  saveFolder = "C:\Temp\"
    on error goto ErrorHandler
    For Each objAtt In itm.Attachments    
        objAtt.SaveAsFile saveFolder & "\" & dateFormat & objAtt.DisplayName
    Next
    on error goto 0

exit sub

ErrorHandler:
debug.print itm.subject
debug.print err.number & ": " & err.description & " on save line in saveAttachtoDisk_invoices"
 resume next
End Sub