亲爱的Stackoverflow人员,
我想用每个 传入 电子邮件替换段落标记(^ pi相信,至少在outlook Find& Replace中)与手动换行符( ^ 1)。
我无法通过谷歌找到解决方案,但我可能会发现错误。
我使用以下代码作为每个传入电子邮件的规则:
(仅供参考,此代码可以正常使用文本)
Sub testing(MyMail As MailItem)
MyMail.HTMLBody = Replace(MyMail.HTMLBody, "example", "changedtext")
MyMail.Save
End Sub
现在我尝试将第二行更改为:
MyMail.HTMLBody = Replace(MyMail.HTMLBody, "^p", "^l")
和
MyMail.HTMLBody = Replace(MyMail.HTMLBody, "chr(13)", "chr(10)")
但这些似乎不起作用。
不幸的是,我对VBA编码不是很熟悉。
我刚刚被告知我需要使用chr(),但我不知道如何做到这一点。
一些背景资料:
我使用2个规则,1使用^ l更改每个^ p,另一个规则是将电子邮件从HTML转换为纯文本。
如果我只是转换它而不首先用^ l更改^ p它将具有所有这些额外的空行。
例:
有人愿意帮我这个吗?
我真的很感激!
此致
克里斯
答案 0 :(得分:1)
有几种方法可以做到,但都具有相同的副作用。 如果用户按住SHIFT + ENTER 2次,它们将导致1个新行
解决方案1: '将2个换行符替换为1个换行符
'vbCrLf is actually Chr(13) & Chr(10)
mail.HTMLBody = Replace(mail.HTMLBody, vbCrLf & vbCrLf, vbCrLf)
解决方案2: '将任何额外的换行替换为“” 最后会有一个额外的空白链接
tmp = Split(mail.HTMLBody, vbCrLf)
For Each Line In tmp
If Line <> "" Then
newBody = newBody & Line & vbCrLf
End If
Next
mail.HTMLBody = newBody