我有 VBA 代码来查找特定 Outlook 文件夹中电子邮件中的附件并将它们保存到一个位置。
我有一个 Outlook 规则,将电子邮件发送到 Outlook 文件夹,然后触发宏。该代码不会在我的计算机上自动触发,但会在另一台计算机上触发。电子邮件进入,规则将其放入文件夹,但代码不运行。当我通过 VB 编辑器手动运行代码时,它会将附件保存在正确的位置。
我已检查以确保文件夹和路径名称正确(无论哪种方式,如果它们错误,则在我手动运行时代码将无法正常运行)。
展望规则:
消息到达后应用此规则
来自 xxxxxxxxxxxx
并在主题中带有 xxxx
并且仅在这台机器上
将其移至 xxxxx 文件夹
并运行 Project1.ThisOutlookSession.Save
VBA代码:
Sub Save(item As Outlook.MailItem)
Dim olApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim olFolder As Outlook.MAPIFolder
Dim msg As Outlook.MailItem
Set olApp = Outlook.Application
Set objNS = olApp.GetNamespace("MAPI")
Set olFolder = objNS.GetDefaultFolder(olFolderInbox)
Set olFolder = olFolder.Folders("xxxxxxx")
Set oApp = CreateObject("Shell.Application")
For Each myitem In olFolder.Items
For Each att In myitem.Attachments
att.SaveAsFile "\\.............\" & att.FileName
myitem.Attachments.Remove 1
myitem.Save
Next
Next
End Sub