首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在HTMLBody中格式化段落间距?

如何在HTMLBody中格式化段落间距?
EN

Stack Overflow用户
提问于 2019-05-10 02:36:45
回答 2查看 898关注 0票数 0

我已经使用Excel宏编写了一封Outlook电子邮件。各行的段落间距设置为"Auto“。我希望前后的间距都是"0磅“。

有没有办法指定合适的段落格式?

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
EN

回答 2

Stack Overflow用户

发布于 2019-05-10 03:24:34

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

在您的例子中,我相信您想要添加这两个样式选项来设置之前/之后的间距:

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

票数 0
EN

Stack Overflow用户

发布于 2019-05-10 03:58:24

您正在为每个列表项编写<ul></ul> -您应该在进入循环之前编写<ul>,然后在循环结束时编写</ul>。修复它可能会解决您的间距问题

   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><ul style='list-style-type:disc;'>"

      For i = 1 To CaseCount
        If ActiveSheet.Cells(i + 5, 4).Value = "Yes" Then

            .HTMLBody = .HTMLBody & "<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>"


        End If
      Next i
      .HTMLBody = .HTMLBody & "</ul><br>Thank you,<br>Kurt"
      .Display
   End With
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56065631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档