首页 > 解决方案 > 用于更改电子邮件工作主题的 Outlook VBA 脚本,但更改未反映在“收件箱”窗口中

问题描述

我有一个 Outlook VBA 脚本,它提示我输入一个旧词和一个新词,然后将所有选定电子邮件的“旧词”更改为“新词”:

Public Sub replaceWords()
    Dim item As Outlook.mailItem

    oldWord = InputBox("Please enter a word to replace. Remebver to include spaces. Enter 'quit' to exit")
    If oldWord = "quit" Then Exit Sub
    newWord = InputBox("and now the word you'd like to replace it with")
    Set oldWordRegex = New RegExp
    With oldWordRegex
        .Pattern = oldWord
        .Global = True
    End With

    For Each item In Application.ActiveExplorer.Selection
        If TypeName(item) = "MailItem" Then
            'remove the "Issued at..." from the end of the subject and a
            item.Subject = oldWordRegex.Replace(item.Subject, newWord)
            item.Save
        End If
    Next

End Sub

据我所知,这工作正常,只是对主题的更改未反映在主“收件箱”窗口中。为了演示,我给自己发了一封主题为“这只小猪去市场”的电子邮件,然后运行我的宏并将“小猪”更改为“青蛙”。结果显示如下:

电子邮件示例

问题:Outlook 是否必须从收件箱中的电子邮件主题重建收件箱列表,如果是,您可以强制它这样做吗?

标签: vbaoutlook

解决方案


推荐阅读