2012-10-02 89 views
0

我使用此VBA代碼從Outlook中的HTML電子郵件填充網站文本區域。從HTML電子郵件填充網站文本區域

我想從mailitem.body中刪除HYPERLINK "website"website和HYPERLINK "mailto:[email protected]"[email protected],同時保留文字。

我應該怎麼做?

ie.document.getElementById("message").Value = Replace(objItem.Body, vbCrLf & vbCrLf, vbCrLf)

一些例子:

www.google.com

在textarea的爲超鏈接 「www.google.com」 www.google.com 電子郵件出來出來是HYPERLINK 「mailto:[email protected][email protected]

+0

正則表達式?如果你可以發佈你提取的示例文本(當然縮短了,但是有完整的超鏈接),這將是有幫助的。 – Johanness

+0

嗨Johanness,我添加了一些例子..但網站和電子郵件將是你看到的普通文本。 ,objitem.body應該以清晰的文字呈現它的身體,但它完全沒有,但是這是我的最後一道障礙.. –

+0

'mailitem.Body'是將從html主體創建的文本主體通過刪除格式化命令並將鏈接轉換爲文本。試試'mailitem.HtmlBody'。 –

回答

0

使用此,開始使用「txt」而不是objitem.body填充。

If objItem.BodyFormat = olFormatHTML Then 
txt = objItem.Body 
strt = InStr(txt, "HYPERLINK") 
do until strt = 0 
    nd = InStr(strt + 13, txt, """") 
    txt = Left(txt, strt - 1) & Mid(txt, nd + 1) 
    strt = InStr(txt, "HYPERLINK") 
loop 
End If 

If objItem.BodyFormat = olFormatRichText Then 
txt = objItem.Body 
strt = InStr(txt, " HYPERLINK") 
do until strt = 0 
    nd = InStr(strt + 13, txt, """") 
    txt = Left(txt, strt - 1) & Mid(txt, nd + 2) 
    strt = InStr(txt, " HYPERLINK") 
loop 
End If 

然後填充文本區域內的體..

如果objItem.BodyFormat = olFormatHTML然後 ie.document.getElementById( 「消息」)。值=替換(TXT,vbCrLf & vbCrLf,vbCrLf) 結束如果 如果objItem.BodyFormat = olFormatPlain然後 ie.document.getElementById( 「消息」)。值= objItem.Body 結束如果 如果objItem.BodyFormat = olFormatRichText然後 ie.document.getElementById( 「消息」) .Value = txt E nd如果