2013-08-22 235 views
1

刪除invlaid角色,我有以下代碼從電子郵件主題

Sub RemoveInvalidChar(myMail As MailItem) 


If myMail.Subject <> vbNullString Then 
     strname = myMail.Subject 
    Else 

End If 
strname = Replace(strname, "&", "and") 

End Sub 

基本上我想用字和使用規則,以取代&字符。似乎沒有工作。

回答

0
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 

如果這不起作用,請添加一個斷點並確保實際上是通過規則調用宏。

1

您尚未將myMail.Subject設置爲您的新字符串。添加下面的行:

myMail.Subject = strname 

但請確保您發送 ByRef。

+0

似乎並沒有做任何事情, – Silentbob

+0

你發送myMail對象的ByRef: '子RemoveInvalidChar(爲ByRef myMail作爲的MailItem)' – Mark

+0

是的,這就是我'子RemoveInvalidChar(爲ByRef myMail作爲的MailItem ) 如果myMail.Subject <> vbNullString然後 則strName = myMail.Subject 否則 結束如果 myMail.Subject =則strName 則strName = REPLACE(則strName, 「&」, 「和」) 完Sub' – Silentbob

0

恩德蘭 - 我設法昨天得到答案,但無法發佈結果。

我錯過了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 
+0

就像我說的,'.Save'是一個非常令人沮喪和相當普遍的問題,用Outlook做這樣的事情...... – enderland