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

如何在VBA生成的Outlook邮件正文中添加空白行?

解决Outlook VBA邮件正文换行问题

你当前代码里用了vbNewLine来换行,但Outlook的HTMLBody属性是解析HTML格式内容的,普通文本换行符不会被识别,所以所有内容挤在一行。要实现你要的分段带空白行的效果,需要用HTML的换行或段落标签,下面是两种修改方式:

方法1:使用HTML段落标签(推荐)

用<p>标签包裹每一段内容,段落之间会自动生成空白行,完全匹配你要的格式:

修改代码里的strbody定义部分:

Dim strbody As String

strbody = "<p>亲爱的" & sourceWorksheet.Cells(rowIndex, "A").Value & ":</p>" & _
          "<p>你的工作热情以及达成既定目标的能力,为生产力和盈利能力带来了显著提升。</p>"

方法2:使用HTML换行标签

如果不想用段落标签,可以用<br><br>来手动添加空白行(单个<br>是换行,两个就是空白行):

修改后的strbody:

Dim strbody As String

strbody = "亲爱的" & sourceWorksheet.Cells(rowIndex, "A").Value & ":<br><br>" & _
          "你的工作热情以及达成既定目标的能力,为生产力和盈利能力带来了显著提升。"

完整修改后的代码

Sub CreateEmails()

    Dim sourceWorksheet As Worksheet
    Set sourceWorksheet = Worksheets("Sheet1")

    Dim lastRow As Long
    With sourceWorksheet
         lastRow = .Cells(.Rows.Count, "C").End(xlUp).Row
    End With

    Dim OutlookApp As Object
    Set OutlookApp = CreateObject("Outlook.Application")

    Dim rowIndex As Long

    For rowIndex = 2 To lastRow '从第二行开始

        Dim MItem As Object
        Set MItem = OutlookApp.CreateItem(0)

        Dim strbody As String
    
        '这里用方法1的段落标签写法,也可以替换成方法2的内容
        strbody = "<p>亲爱的" & sourceWorksheet.Cells(rowIndex, "A").Value & ":</p>" & _
                  "<p>你的工作热情以及达成既定目标的能力,为生产力和盈利能力带来了显著提升。</p>"
              
        With MItem
            .To = sourceWorksheet.Cells(rowIndex, "E").Value
            .CC = sourceWorksheet.Cells(rowIndex, "F").Value
            '会将C列的每个邮箱地址生成单独邮件
            .Subject = "MIP评级 - 2022年9月"
            .HTMLBody = strbody
            .display

        End With
    Next rowIndex
End Sub

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 02:01:28