我有以下代码
Sub RemoveInvalidChar(myMail As MailItem)
If myMail.Subject <> vbNullString Then
strname = myMail.Subject
Else
End If
strname = Replace(strname, "&", "and")
End Sub
基本上我想用单词替换 & char 并使用规则。似乎不起作用。
您尚未将 myMail.Subject 设置为新字符串。添加以下行:
myMail.Subject = strname
但请确保您发送的是myMail
ByRef。
Sub RemoveInvalidChar(myMail As MailItem)
If myMail.Subject <> vbNullString Then
'set the actual subject to a new subject
myMail.Subject= Replace(myMail.Subject, "&", "and")
'get in the habit of saving email when you change it via vba
'as there will be a lot of cases where you get burned for this
myMail.Save
End If
End Sub
如果这不起作用,请添加断点并确保您实际上是通过规则正确调用宏。
enderland - 我昨天设法得到答案,但无法发布结果。
我错过了 mymail.save
无论如何,我的代码在下面,它可以工作。Ltrim 只是从主题行的前面删除任何前面的空格。
Sub RemoveInvalidChar(myMail As MailItem)
Dim strname As String
Dim sreplace As String
sreplace = "and"
strname = LTrim(myMail.Subject)
strname = Replace(strname, "&", sreplace)
myMail.Subject = strname
myMail.Save
End Sub