gpt4 book ai didi

vba - 在 Outlook VBA 中更新电子邮件主题

转载 作者:行者123 更新时间:2023-12-03 18:06:13 30 4
gpt4 key购买 nike

我正在尝试创建一个按钮控制的宏来更改电子邮件的主题。关注 this thread我设法想出了这个:

Public Sub Confidential()

Dim Item As Outlook.MailItem
Dim oInspector As Inspector
Dim strSubject As String

Set oInspector = Application.ActiveInspector
If oInspector Is Nothing Then
Set Item = Application.ActiveExplorer.Selection.Item(1)
Else
Set Item = oInspector.CurrentItem
End If

strSubject = Item.Subject

' Remove previous Confidential and Legally Privileged
strSubject = Replace(strSubject, "Confidential and Legally Privileged ", "")

' Prefix subject with Confidential and Legally Privileged
strSubject = "Confidential and Legally Privileged " & strSubject

' Set the message subject
Item.Subject = strSubject


Set Item = Nothing
Set oInspector = Nothing


End Sub

IF 语句是我试图涵盖的基础:用户可以在设置 ActiveInpector 时在弹出窗口中编辑电子邮件,或者用户可以在 reading pane 中编辑它。 - 设置 ActiveExplorer.Selection 时。

问题在于,虽然在第一种情况下宏按预期工作,但在第二种情况下,主题没有改变(即使我在调试代码时可以看到它发生了变化)。如果消息被选中但未编辑(即用户没有单击“回复”按钮),则更有趣的是宏可以很好地更改消息列表中的主题。

现在,我找到了 this thread但是 a) 它已经超过 6 年了,并且 b) 指向不再存在的论坛。正如它所建议的,我试过 Item.Save方法,但除了关闭带有原始主题的已编辑消息外,它似乎没有任何作用。

最佳答案

感谢@Ryan Wildry 回答:如果在资源管理器 Pane 中编辑电子邮件,请使用 .Display强制弹出窗口然后使用它的方法:

Dim Item As Outlook.MailItem
Dim oInspector As Inspector
Set oInspector = Application.ActiveInspector

If oInspector Is Nothing Then
Set Item = Application.ActiveExplorer.Selection.Item(1)
Item.Display 'Force the po-up
Set oInspector = Application.ActiveInspector 'Reassign oInpsector and Item again
Set Item = oInspector.CurrentItem
Else
Set Item = oInspector.CurrentItem
End If

关于vba - 在 Outlook VBA 中更新电子邮件主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39134335/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com