我最初运行此代码以保存传入电子邮件中的附件。我的代码将遍历整个文件夹,对于那里的任何附件,它将保存附件并将其从电子邮件中删除。我有一个规则,只要我想要的邮件进来,就会触发宏。但是,当邮件进来时,附件永远不会保存下来。没有错误,手动调试工作得很好。此外,通过单击“立即运行规则”按钮立即运行规则也可以正常工作。因此,在尝试了一百万种不同的方法来保存附件之后,我开始变得非常恼火,并设置了一个测试来看看该死的前景在做什么。所以这就是问题所在。
这是我设置的前景规则:
邮件从 xxxxx 到达后应用此规则,将其移动到 Macrotest 文件夹并运行 Project1.ThisOutlookSession.sayhi
我发现虽然 Outlook 所做的是在将邮件传输到我的宏查找的文件夹之前触发脚本。因此,它永远不会找到新文件。显然,当它完成时,邮件会进入文件夹,所以当我手动运行它时它工作得很好。那么我怎样才能修复这条规则的顺序呢?
Public Sub sayhi(item As Outlook.MailItem)
Dim objNS As Outlook.NameSpace
Dim olfolder As Outlook.MAPIFolder
Dim msg As Outlook.MailItem
Set objNS = Application.GetNamespace("MAPI")
Set olfolder = objNS.GetDefaultFolder(olFolderInbox)
Set olsubfolder = olfolder.Folders("Macrotest")
Set oapp = CreateObject("Shell.Application")
For Each myitem In olsubfolder.Items
MsgBox "hellothere"
myitem.UnRead = False
Next
End Sub