You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VBA发送HTML格式邮件:文本无法分三行的解决方法咨询

解决VBA邮件HTML文本换行问题

嘿,我看了你的代码,发现几个小细节出错了,导致换行没生效,咱们一步步来修正:

1. 先搞定变量的拼写与赋值错误

你定义了MyText、MyText2,但后面拼接HTML的时候用了MyText1、MyText3——这是拼写错误!而且你还把MyText重复赋值了,把原来的"Greetings"给覆盖成了第三行文本,这会导致内容本身就不对。先把变量理清楚:

MyText = "Greetings"
MyText2 = "Your Macro.V.0.4 has concluded."
MyText3 = "Please attend to terminal AFAP" ' 修正变量名,避免覆盖原有内容

2. 正确使用HTML换行标签

你用了&lt;br&gt;,这是HTML的转义实体,但在VBA里直接给HTMLBody赋值时,不需要转义,直接写<br>就行。Outlook的HTML渲染引擎能直接识别这个标签来实现换行。

3. 修正后的完整代码

这里是调整后的完整代码,修复了所有问题,能正确显示三行文本:

Private Sub mailer2()
 Dim oApp As Object, oMail As Object, MyHTML As String
 Dim username As String
 Dim MyText As String, MyText2 As String, MyText3 As String
 
 Application.ScreenUpdating = False
 Set oApp = CreateObject("Outlook.Application")
 Set oMail = oApp.CreateItem(0)
 
 username = InputBox("Please write your E-mail")
 
 ' 修正变量赋值与命名错误
 MyText = "Greetings"
 MyText2 = "Your Macro.V.0.4 has concluded."
 MyText3 = "Please attend to terminal AFAP"
 
 ' 正确使用HTML换行标签,无需转义
 MyHTML = "<p style=""font-size:18px;font-weight:Bold;color:rgb(100,100,100)"">" & _
          MyText & "<br>" & MyText2 & "<br>" & MyText3 & "</p>"
 
 With oMail
 .To = username
 .Subject = "Automated message, please do not answer"
 .Display ' 建议先预览效果,没问题再改成.Send
 '.Send
 End With
 
 Application.ScreenUpdating = True
 Set oMail = Nothing
 Set oApp = Nothing
End Sub

额外小提示

  • 我把.Send改成了.Display,建议先预览邮件确认格式正确,再切换回.Send,避免发送错误的邮件。
  • 如果想要段落之间有更大的间距,可以把每一段放在单独的<p>标签里,比如:
MyHTML = "<p style=""font-size:18px;font-weight:Bold;color:rgb(100,100,100)"">" & MyText & "</p>" & _
         "<p style=""font-size:18px;font-weight:Bold;color:rgb(100,100,100)"">" & MyText2 & "</p>" & _
         "<p style=""font-size:18px;font-weight:Bold;color:rgb(100,100,100)"">" & MyText3 & "</p>"

这样每一行会自动带段落间距,可读性更强。

内容的提问来源于stack exchange,提问作者DGMS89

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:32:01