我看过这个 Outlook 脚本示例,它很类似,对我来说是一个很好的开始:Outlook 脚本编辑主题
但是,我需要使用一种更困难的方法来更改到达时的传入消息主题行,这需要更复杂的字符串操作。
这实际上是我使用过的基本代码,迄今为止一直有效:
Sub ConvertToPlain(MyMail As MailItem)
Dim strID As String
Dim objMail As Outlook.MailItem
strID = MyMail.EntryID
Set objMail = Application.Session.GetItemFromID(strID)
objMail.Subject = Left(objMail.Subject, 18)
objMail.Save
Set objMail = Nothing
End Sub
现在,我原始主题始终采用以下格式(括号中的任何内容都是变量):
Ticket [#] - [SOMETHING] - [SOMETHING] - [TITLE]
我希望删除“[SOMETHING] - [SOMETHING] -”,因为它正在动态变化,如您所见,并且只保留:
Ticket [#] - [TITLE]
这样,我就可以再次轻松地在 Outlook 中排序/筛选。如何在 VBA 中实现这一点?谢谢。
答案1
最好的办法是要么用 REGEX 找出你想要的部分,要么如果你知道格式总是这种格式,你可以在 - 上拆分字符串并取第一个和最后一个。
大致如下:
Sub ConvertToPlain(MyMail As MailItem)
Dim strID As String
Dim objMail As Outlook.MailItem
Dim splitSubject() as String
Dim concatSubject as String
strID = MyMail.EntryID
Set objMail = Application.Session.GetItemFromID(strID)
splitSubject = Split(objMail.Subject, "-")
concatSubject = splitSubject(LBound(splitSubject)) & " - " & splitSubject(UBound(splitSubject))
objMail.Subject = concatSubject
objMail.Save
Set objMail = Nothing
End Sub
该代码尚未经过完全测试,但希望能够帮助您走上正轨。