在vba中格式化文本

时间:2018-05-16 13:45:25

标签: vba outlook outlook-vba

如何在vba中解冻文本。我必须将Outlook.MeetingItem.Body格式化为纯文本。这个对象包含带引号和新行的文本,我不会以某种方式处理这个文本。

例如写一些像 sudocode:

if meetingitem contains quotes or newlines change quotes to single quotes and new lines to symbol(\n)

目前我的MeetingItem.Body看起来像(例子):

  

大家好   如果您正在寻找" Dance"," Bus"或" Car"
  走这条路:

     

否则去:

我将在"一个" " Car" " way&#34之后重新换行换行符; "空行" "去" - 使用\n和双引号使用单引号。我不知道我的电子邮件是使用LF还是CR LF(如何检查?)。

为什么呢?我将把这个字符串放入我的JSON中,也许有更好的方法来做到这一点,但我只发现了这一点。我不能将带双引号和新行的字符串放入JSON。

1 个答案:

答案 0 :(得分:0)

我对这个问题的回答可能有所帮助:How to copy Outlook mail message into excel using VBA or Macros。主宏将收件箱中每封电子邮件的所选属性输出到Excel工作簿,这样您就可以看到电子邮件对VBA宏的影响。

即使我检查并发现收件箱中的每封电子邮件都使用CR LF作为新行,我也不相信。一些电子邮件包将使用LF,一些将使用CR LF作为换行符。除非我找到说明Outlook编辑了所有文本主体的文档,所以他们有一致的换行符,否则我不会期望一致性。我认为换行是CR,LF或CR LF只是为了安全。

此代码是否符合您的要求:

Dim  JsonBody As String

JsonBody = Replace(MeetingItem.Body, """", "'")
JsonBody = Replace(JsonBody,vbCR & vbLF, "\n")
JsonBody = Replace(JsonBody,vbCR, "\n")
JsonBody = Replace(JsonBody,vbLF, "\n")