我在传入邮件上运行规则,将主题行中具有特定字符串的项目移动到文件夹。然后它运行一个脚本,用其他东西替换部分主题。
我在脚本中添加了断点以确保它正在运行而不是宏安全问题。它读取主题,但不会保存更改。我从寻找类似结果的人那里得到了脚本
Sub RunAScriptRuleRoutine(MyMail As Outlook.MailItem)
Dim strID As String
Dim olNS As Outlook.NameSpace
Dim olMail As Outlook.MailItem
strID = MyMail.EntryID
Set olNS = Application.GetNamespace("MAPI")
Set olMail = olNS.GetItemFromID(strID)
' do stuff with olMail, e.g.
olMail.Subject = Replace(objMail.Subject, "[Jira]", "something else")
olMail.Save
Set olMail = Nothing
Set olNS = Nothing
End Sub
我知道上面的内容太过分了,所以我也用更简单的代码检查了它,但仍然没有成功,它只保留了它所带来的相同主题。
Public Sub Whatever(Mail As Outlook.MailItem)
Mail.Subject = "Hello"
Mail.Save
End Sub
似乎我误解了MailItem.Save方法,但我无法解决它。
我正在使用Outlook 2007。
任何想法?
答案 0 :(得分:0)
MailItem类的Move方法将Microsoft Outlook项目移动到新文件夹,并返回一个Object值,该值表示已移动到指定文件夹的项目。
因此,您需要在返回的对象上设置Subject
属性,而不是源对象。
答案 1 :(得分:0)
第二个例子似乎没有任何问题。
对于第一个示例,您缺少Option Explicit
哪会导致您将objMail更改为olMail
olMail.Subject = Replace(olMail.Subject, "[Jira]", "something else")