将段落从多行文本框窗体复制到 Outlook



>我有一个带有多行文本框的表单,当我写一个段落并尝试将其复制到 Outlook 时,就像它在 texbox 中看起来一样,行间有空格,但它将所有段落复制到一行中。您可以在图像中看到它。我知道我可以在 HTML 代码中编写该段落。HTMLBody,但这不是我想要的,因为我想在发送邮件时对其进行编辑。我不知道是否有代码可以做到这一点,如果没有,你能给我一些其他的想法吗?

Form_Enviar_Correo

展望邮件

Sub ENVIAR()
Dim a As Worksheet, b As Worksheet
Dim OApp As Object, OMail As Object, sbdy As String
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
ChDir (ActiveWorkbook.Path)
Dest = Form_Enviar_Correo.Txt_Para.Value
Asun = Form_Enviar_Correo.Txt_Asunto.Value
CC = Form_Enviar_Correo.Txt_CC.Value
Set OApp = CreateObject("Outlook.Application")
Set OMail = OApp.CreateItem(0)
spie = "<img align=left width=80 height=90 src=https://xxxxxxxxxxxxx.png>" 
sbdy = spie
With OMail
.To = Dest
.CC = CC
'.BCC = SCop
.Subject = Asun
.Body = Form_Enviar_Correo.Txt_Cuerpo.Text
.HTMLBody = sbdy
.Display
'.Send
End With
Set OMail = Nothing
Set OApp = Nothing
Application.ScreenUpdating = True
Application.DisplayAlerts = True
'MsgBox ("El mensaje se envió con éxito"), vbInformation, "AVISO"
End Sub

假设这些行由回车符分隔vbCr您可以使用Replace函数将它们全部替换为具有一行代码的 HTML 等效项。

Dim sText as String
sTest = "This is" & vbCr & "a test"
MsgBox sTest
Dim sHTMLFormat as String
sHTMLFormat = Replace(sTest, vbCr, "<br>")
MsgBox sHTMLFormat

所以。。。

.HTMLBody = Replace(Form_Enviar_Correo.Txt_Cuerpo.Text, vbCr, "<br>")

它们也可能被vbNewLinevbCrLfvbLf分隔,因此请使用适用于您的情况的那个。

最新更新