粘贴到Outlook时,字符串不会保留回车符

问题描述 投票:2回答:1

在保持回车时,我很难将单个单元格粘贴到Outlook。我不能使用RangeToHTML,因为它粘贴为一个表,我需要它是纯文本所以我试过这个:

For Each C In wsEnv.Range("A1:A17")
    If C.Row = 1 Then
        wsEnv.Cells(19, 1) = C & vbCrLf
    ElseIf C.Row < 17 Then
        wsEnv.Cells(19, 1) = wsEnv.Cells(19, 1) & C & vbCrLf
    Else
        wsEnv.Cells(19, 1) = wsEnv.Cells(19, 1) & C
    End If
Next C

On Error Resume Next

With OutMail
    .Display
    .To = Para
    .CC = CC
    .BCC = ""
    .Subject = Asunto
    .HTMLBody = wsEnv.Cells(19, 1)
    .Send
End With
On Error GoTo 0

结果是这样的:

Result

有没有办法在格式上保留格式?或者使用RangeToHTML函数,将其粘贴为文本而不是表格?

excel vba outlook outlook-vba
1个回答
3
投票

您正在使用HTML邮件.HTMLBody并且回车符对HTML代码没有影响。实际上.HTMLBody正在等待HTML代码而不是纯文本。

  • 使用“仅文本”邮件: 将MailItem.BodyFormat property设置为olFormatPlain(请参阅OlBodyFormat enumeration)并使用.Body而不是.HTMLBody .BodyFormat = olFormatPlain .Body = wsEnv.Cells(19, 1).Value
  • replace所有vbCrLf与换行符<br>的HTML代码。 .HTMLBody = Replace$(wsEnv.Cells(19, 1).Value, vbCrLf, "<br>")

请注意,使用Alt + Enter在单元格中输入的换行符是vbLf而不是vbCrLf

© www.soinside.com 2019 - 2024. All rights reserved.