excel - 如何在 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
解决方案
像这样格式化电子邮件的最简单方法是在 Outlook 中编写带有格式的电子邮件,将其发送给自己,然后右键单击电子邮件正文并选择查看源。然后,您可以挑选出 HTML 的相关部分。
在您的情况下,我相信您想添加这两个样式选项来设置前后间距:
style='mso-margin-top-alt:0.0pt;margin-bottom:0.0pt;'