启用富文本格式并保持格式

我正在开发一个新的Excel文档,我们将使用它来input信息,然后使用该信息从OFT模板生成电子邮件。 基本上,VBA在OFT内查找某个string,然后用单元格或activex文本框的内容replace它。 例如:

单元格引用:

.HTMLBody = Replace(.HTMLBody, "<< summary >>", Worksheets("Sheet1").Range("H3")) 

ActiveX文本框参考:

 .HTMLBody = Replace(.HTMLBody, "<< previous-updates >>", ActiveSheet.OLEObjects("PreviousUpdates").Object.Text) 

我遇到的问题是在“PreviousUpdates”文本框中格式化文本。 我可以用HTML格式化文本,并正确导入OFT模板。 但是,我的很多同事都不懂HTML,所以无法用这种方式来格式化文本。 考虑到这一点,我的问题有两个方面:

  1. 如何在“PreviousUpdates”文本框中启用富文本格式?
  2. 如何确保在“导出”OFT模板时保持这种格式?

TIA的任何帮助。

虽然我还没有find解决我最初的问题,我设法提出一个基于Zac提供的反馈的解决方法。 我有点把他的想法和跑了。 以为我会发布我的解决方法,以防万一有什么问题。

因此,我所做的是使用Replace语句来格式化HTML中的文本,填充HTML电子邮件模板,然后删除HTML标记,以便在Excel中正确格式化文本。 这是我的代码的一个例子:

  ' Add HTML formatting to text updates so it displays correctly in the email. PreviousUpdates.Text = Replace(PreviousUpdates, vbCrLf, "<br>") LatestUpdate.Text = Replace(LatestUpdate, "-", "<li>") LatestUpdate.Text = Replace(LatestUpdate, vbCrLf, "<br>") ' Populate the HTML email template. .Subject = Replace(.Subject, "<< REF >>", Worksheets("Sheet1").Range("C3")) .HTMLBody = Replace(.HTMLBody, "&lt;&lt; summary &gt;&gt;", Summary.Text) .HTMLBody = Replace(.HTMLBody, "&lt;&lt; latest-update &gt;&gt;", LatestUpdate.Text) .HTMLBody = Replace(.HTMLBody, "&lt;&lt; previous-updates &gt;&gt;", PreviousUpdates.Text) .Display ' Remove HTML formatting from text updates so it displays correctly in Excel. PreviousUpdates.Text = Replace(PreviousUpdates, "<br>", vbCrLf) LatestUpdate.Text = Replace(LatestUpdate, "<li>", "-") LatestUpdate.Text = Replace(LatestUpdate, "<br>", vbCrLf) 

所以这段代码是用HTML换行符replaceExcel回车符(vbCrLf)(<br>)。 它也正在寻找一个破折号,并用项目符号列表HTML标记取而代之。

一旦填入电子邮件,它将删除HTML格式,以便在Excel中正确显示文本。

这不是完美的,但它的工作原理,人们使用它很简单。