首页 > 解决方案 > 如何在 HTMLBody 中格式化段落间距?

问题描述

我使用 Excel 宏编写了 Outlook 电子邮件。行的段落间距设置为“自动”。我希望前后的间距都是“0 pt”。

有没有办法规定适当的段落格式?

Sub Email_Budget()

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

   Dim objEmail As Object
   Set objEmail = objOutlook.CreateItem(olMailItem)

   Dim CaseCount As Long
   CaseCount = WorksheetFunction.CountA(Range("B6:B500"))
   'Debug.Print CaseCount

   Dim i As Integer

   With objEmail
      .To = "abc@xyz.com"
      .Subject = "TEST1: May 2019 Budget"
      .HTMLBody = "Karen,<br><br>"
      .HTMLBody = .HTMLBody & "The potential " & _
        MonthName(Month(ActiveSheet.Range("A2"))) & _
        " invoices are below.<br><br>"

      For i = 1 To CaseCount

          If ActiveSheet.Cells(i + 5, 4).Value = "Yes" Then
              .HTMLBody = .HTMLBody & "<ul style='list-style-type:disc;'>" & _
                "<li>" & ActiveSheet.Cells(i + 5, 2).Value & " - " & _
                Format(ActiveSheet.Cells(i + 5, 6).Value, "Currency") & _
                " (" & Format(ActiveSheet.Cells(i + 5, 8).Value, "Currency") & _
                " without budget or invoicing)." & "</li>" & "</ul>"
          End If

      Next i

      .HTMLBody = .HTMLBody & "<br>Thank you,<br>Kurt"
      .Display
   End With

End Sub

标签: excelvbaoutlook

解决方案


像这样格式化电子邮件的最简单方法是在 Outlook 中编写带有格式的电子邮件,将其发送给自己,然后右键单击电子邮件正文并选择查看源。然后,您可以挑选出 HTML 的相关部分。

在您的情况下,我相信您想添加这两个样式选项来设置前后间距:

style='mso-margin-top-alt:0.0pt;margin-bottom:0.0pt;'


推荐阅读