VBA/更改传入电子邮件的主题行然后移动到文件夹的规则

VBA/更改传入电子邮件的主题行然后移动到文件夹的规则,vba,outlook,Vba,Outlook,我想写一个脚本,将采取具体的传入电子邮件,改变他们的主题行,然后将该电子邮件移动到一个特定的文件夹 我可以找到在邮件本身打开时更改主题行的脚本,但是当绑定到“移动到文件夹”规则时,主题不会更改 我尝试过这个代码,它在我打开的消息的主题行中添加文本 Sub myRuleMacro(Item As Outlook.MailItem) Sub AddToEndOfSubjectLine() If ActiveInspector Is Nothing Then Exit Sub ActiveInspe

我想写一个脚本,将采取具体的传入电子邮件,改变他们的主题行,然后将该电子邮件移动到一个特定的文件夹

我可以找到在邮件本身打开时更改主题行的脚本,但是当绑定到“移动到文件夹”规则时,主题不会更改

我尝试过这个代码,它在我打开的消息的主题行中添加文本

Sub myRuleMacro(Item As Outlook.MailItem)

Sub AddToEndOfSubjectLine()
If ActiveInspector Is Nothing Then Exit Sub
ActiveInspector.CurrentItem.Save
ActiveInspector.CurrentItem.subject = ActiveInspector.CurrentItem.subject & " HELLO!"
End Sub

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)

End Sub
这里有一个例子,试试看

要测试脚本,请尝试选择电子邮件并运行以下代码


项目是收到的邮件

“代码>选项显式”考虑此强制 “工具|选项|编辑器”选项卡 '需要变量声明 子myRuleMacro(作为Outlook.MailItem的项目) '规则向导具有误导性 “行动必须在代码中,而不是在规则中 Dim Inbox文件夹作为文件夹 Dim mailboxFolder作为文件夹 将文件夹设置为文件夹 Dim destFolderStr作为字符串 Item.Subject=Item.Subject&“你好!” 调试。打印项。主题 '引用文件夹的一种方法 '是从已知文件夹遍历文件夹树 Set inboxFolder=Session.GetDefaultFolder(olFolderInbox) 设置mailboxFolder=inboxFolder.Parent Debug.Print“与默认收件箱关联的邮箱:”&mailboxFolder destFolderStr=“与收件箱处于同一级别的文件夹的名称” 设置destFolder=mailboxFolder.folders(destFolderStr) 项目。移动文件夹 端接头 您可以使用打开的邮件项进行测试

Private-Sub-simulateIncomingMail\u BeforeTrueTest()
myRuleMacro ActiveInspector.CurrentItem
端接头

很抱歉,我还尝试了另一种代码,它可以更改我在文件夹中突出显示的任何邮件,我无法将其正确粘贴到帖子中。对不起,BigBen,我不想这么做。我是Outlook的VBA新手。我对Excel非常危险。我在Outlook中尝试了几种不同的代码字符串来实现这一点,但运气不好。我只是想找到一种有效的方法,为一系列自动发送的名称不好的电子邮件在主题行中添加一些文本。您好,我尝试了脚本,将文件夹名称替换为我的目标文件夹。文件夹(“Rpt每日例外”)当附加到规则时,outlook通过快速弹出状态窗口来移动电子邮件;但信息没有移动,主题也没有被修改。当附加到规则时,规则会移动消息,当然,它会移动,但主题根本不会改变。通过规则和警报屏幕。我尝试了“在主题中使用特定的词语”,然后“运行脚本”,并选择了您布置的脚本。我还尝试过:“在主题中使用特定单词”,然后是“移动到文件夹”,然后是“运行脚本”。脚本确实返回错误,操作失败,无法找到对象。然后,它引用脚本的set子文件夹部分。这是第3I行刚刚验证过的,并且在大小写匹配之前,这两个字段的键入完全相同。我在outlook中的文件夹名为
Rpt Daily Exceptions
,我在脚本中将其引用为
。文件夹(“Rpt Daily Exceptions”)
Public Sub Example(Item As Outlook.MailItem)

    Debug.Print Item.Subject ' Print on Immediate Window

    Item.Subject = Item.Subject & " HELLO!"
        Item.Save

End Sub
Private Sub TestMsg()
    Dim olMsg As Outlook.MailItem

    Set olMsg = ActiveExplorer.Selection.Item(1)
    Example olMsg

End Sub