用于下载附件的Outlook脚本停止工作

时间:2015-04-10 18:45:10

标签: vba outlook outlook-vba

我在下面有一个小脚本,用于从包含主题中特定单词的电子邮件中下载附件。

它运作良好一段时间但最近我遇到了间歇性问题,因为它没有下载附件。

我开始认为规则是问题,而不是脚本。

Sub saveAttachtoDisk(itm As Outlook.MailItem)
Dim objAtt As Outlook.Attachment
Dim saveFolder As String
saveFolder = "path where to save file"
For Each objAtt In itm.Attachments
objAtt.SaveAsFile saveFolder & "\inventory.csv"
Set objAtt = Nothing
Next
End Sub

这是规则:

Apply this rule after the message arrives
with CPN in the subject
  and on this computer only
run Project1.saveAtachtoDisk

你们是我最后的希望,没有其他人可以帮助我。

2 个答案:

答案 0 :(得分:0)

将规则替换为事件处理程序

Private WithEvents Items As Outlook.Items 
Private Sub Items_ItemAdd(ByVal item As Object) 
  On Error Goto ErrorHandler 
  Dim Msg As Outlook.MailItem 
  If TypeName(item) = "MailItem" Then
    Set Msg = item 
    saveAttachtoDisk(Msg)
  End If
ProgramExit: 
  Exit Sub
ErrorHandler: 
  MsgBox Err.Number & " - " & Err.Description 
  Resume ProgramExit 
End Sub

答案 1 :(得分:0)

尝试将任何日志记录语句添加到VBA宏子项,以确保在Outlook中触发规则。例如,您可以创建文本文件并在其中添加日志条目。

  

saveFolder =“保存文件的路径”

代码中指定了什么文件夹路径?

For Each objAtt In itm.Attachments
  objAtt.SaveAsFile saveFolder & "\inventory.csv"

看起来您保存了具有相同名称的附件。在这种情况下,将覆盖多个附件 - 只有一个文件将保存在磁盘上。是这样的吗?