刪除invlaid角色,我有以下代碼從電子郵件主題
Sub RemoveInvalidChar(myMail As MailItem)
If myMail.Subject <> vbNullString Then
strname = myMail.Subject
Else
End If
strname = Replace(strname, "&", "and")
End Sub
基本上我想用字和使用規則,以取代&字符。似乎沒有工作。
刪除invlaid角色,我有以下代碼從電子郵件主題
Sub RemoveInvalidChar(myMail As MailItem)
If myMail.Subject <> vbNullString Then
strname = myMail.Subject
Else
End If
strname = Replace(strname, "&", "and")
End Sub
基本上我想用字和使用規則,以取代&字符。似乎沒有工作。
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
如果這不起作用,請添加一個斷點並確保實際上是通過規則調用宏。
您尚未將myMail.Subject設置爲您的新字符串。添加下面的行:
myMail.Subject = strname
但請確保您發送 ByRef。
恩德蘭 - 我設法昨天得到答案,但無法發佈結果。
我錯過了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
就像我說的,'.Save'是一個非常令人沮喪和相當普遍的問題,用Outlook做這樣的事情...... – enderland
似乎並沒有做任何事情, – Silentbob
你發送myMail對象的ByRef: '子RemoveInvalidChar(爲ByRef myMail作爲的MailItem)' – Mark
是的,這就是我'子RemoveInvalidChar(爲ByRef myMail作爲的MailItem ) 如果myMail.Subject <> vbNullString然後 則strName = myMail.Subject 否則 結束如果 myMail.Subject =則strName 則strName = REPLACE(則strName, 「&」, 「和」) 完Sub' – Silentbob