将Access中带vbNewLine的字符串传入Outlook邮件时如何保留换行?
根本原因
HTMLBody属性按照HTML规则渲染内容,vbNewLine对应的纯文本换行符在HTML中会被识别为普通空白,不会触发换行,HTML换行需要使用<br>标签实现。
修复方案
在替换占位符之前,先把字符串里的vbNewLine全部替换为<br>即可,修改后的代码如下:
Dim strSalesOrderRemarks As String ' 你的原字符串赋值逻辑,注意修正笔误:第二行原代码的strExample应为strSalesOrderRemarks strSalesOrderRemarks = "Hello" & vbNewLine strSalesOrderRemarks = strSalesOrderRemarks & "World" ' 新增换行符转HTML标签的逻辑 Dim formattedBody As String formattedBody = Replace(strSalesOrderRemarks, vbNewLine, "<br>") ' 替换模板占位符 .HTMLBody = Replace(.HTMLBody, "{strBody}", formattedBody)
拓展场景
如果需要保留原字符串中的所有空格、缩进格式,可以将处理后的字符串包裹在<pre>标签中:
formattedBody = "<pre>" & Replace(strSalesOrderRemarks, vbNewLine, "<br>") & "</pre>"
内容的提问来源于stack exchange,提问作者Mathias Z
相关产品推荐
相关产品推荐

