我在下面有一个小脚本,用于从包含主题中特定单词的电子邮件中下载附件。
它运作良好一段时间但最近我遇到了间歇性问题,因为它没有下载附件。
我开始认为规则是问题,而不是脚本。
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
你们是我最后的希望,没有其他人可以帮助我。
答案 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"
看起来您保存了具有相同名称的附件。在这种情况下,将覆盖多个附件 - 只有一个文件将保存在磁盘上。是这样的吗?