当下面的 Excel VBA 代码生成电子邮件时,它不使用默认的新电子邮件格式。
代码在段落后添加了空格,并且不允许我在不更改其格式的情况下插入默认签名。
我向上移动了
mymail.display
,它显示了具有正确格式和签名的新邮件模板,但是其余代码覆盖了此内容。
Sub Email()
'
' Email Macro
'
Sheets("Email").Select
Dim outlookapp As Object
Dim myMail As Object
Dim source_file, to_emails, cc_emails As String
Dim i, j As Integer
ActiveWorkbook.Save
Set outlookapp = CreateObject("outlook.Application")
Set myMail = outlookapp.CreateItem(olMailItem)
myMail.Display
For i = 2 To 6
to_emails = to_emails & Cells(i, 1) & ";"
cc_emails = cc_emails & Cells(i, 6) & ";"
body_emails = body_emails & Cells(i, 5) & vbNewLine
source_file = source_file & Cells(i, 3)
Next i
source_file = ThisWorkbook.FullName
myMail.CC = cc_emails
myMail.to = to_emails
myMail.Subject = Sheets("Email").Range("B2").Value
myMail.Body = body_emails
'
End Sub
使用以下代码行覆盖已添加签名的消息正文的现有内容:
myMail.Body = body_emails
首先,
Body
属性表示没有任何格式的纯文本字符串。要保留消息正文中的格式,您需要使用 HTMLBody 属性。
其次,您需要在打开
body_emails
标签后立即粘贴内容(<body>
)。因此,所有其他 HTML 标记都将被保留。