如何在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。
答案 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")