2

我最初运行此代码以保存传入电子邮件中的附件。我的代码将遍历整个文件夹,对于那里的任何附件,它将保存附件并将其从电子邮件中删除。我有一个规则,只要我想要的邮件进来,就会触发宏。但是,当邮件进来时,附件永远不会保存下来。没有错误,手动调试工作得很好。此外,通过单击“立即运行规则”按钮立即运行规则也可以正常工作。因此,在尝试了一百万种不同的方法来保存附件之后,我开始变得非常恼火,并设置了一个测试来看看该死的前景在做什么。所以这就是问题所在。

这是我设置的前景规则:

邮件从 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
4

1 回答 1

0

该代码处理您传入的项目(项目为 Outlook.MailItem)

Public Sub sayhi(item As Outlook.MailItem)

    MsgBox "item Subject: " & item.Subject

End Sub

处理“项目”的附件,而不是文件夹中的所有邮件项目。

于 2015-04-02T17:01:07.733 回答