为了保持回车,我很难将单个单元格粘贴到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
结果是这样的:
有什么方法可以将格式保留在单元格上吗?还是使用RangeToHTML
函数将其粘贴为文本而不是表格?
答案 0 :(得分:3)
您正在使用HTML邮件ID
,而回车在HTML代码中无效。实际上struct A
{
uint16_t a;
} __attribute__((packed));
template<class T>
struct B : A
{
T getA() { return static_cast<T>(a);}
} __attribute__((packed));
正在等待HTML代码而不是纯文本。
使用“纯文本”邮件:
将MailItem.BodyFormat property设置为.HTMLBody
(请参阅OlBodyFormat enumeration),并使用.HTMLBody
代替olFormatPlain
.Body
或replace全部.HTMLBody
以及带有HTML代码的换行符.BodyFormat = olFormatPlain
.Body = wsEnv.Cells(19, 1).Value
。
vbCrLf
请注意,使用 Alt + Enter 在单元格中输入的换行符是<br>
而不是.HTMLBody = Replace$(wsEnv.Cells(19, 1).Value, vbCrLf, "<br>")
!