我正在寻找 vba 代码,它可以起草批量电子邮件,其中包含电子邮件正文中的文本和超链接以及多个附件。我的代码可以按照我在电子邮件正文中需要的详细信息正常工作。但我已经提到了 Excel 中的超链接,并期望生成相同的电子邮件以及超链接地址,但不幸的是它给出了纯文本而不是超链接。
Option Explicit
Sub DraftOutlookEmails()
Dim Sh As Worksheet
Set Sh = ThisWorkbook.Sheets("Bulk Email")
Dim i As Integer
Dim OA As Object
Dim msg As Object
'Set objects
Set OA = CreateObject("Outlook.Application")
Dim last_row As Integer
last_row = Sh.Range("D" & Application.Rows.Count).End(xlUp).Row
'Read details from Excel sheet and draft emails
For i = 6 To last_row
'Create a new email item
Set msg = OA.CreateItem(0)
If Sh.Range("C" & i).Value <> "" Then msg.SentOnBehalfOfName = Sh.Range("C" & i).Value
msg.To = Sh.Range("D" & i).Value
msg.CC = Sh.Range("E" & i).Value
msg.Subject = Sh.Range("F" & i).Value
msg.Body = Sh.Range("G" & i).Value
If Sh.Range("H" & i).Value <> "" Then
msg.Attachments.Add Sh.Range("H" & i).Value
End If
If Sh.Range("I" & i).Value <> "" Then
msg.Attachments.Add Sh.Range("I" & i).Value
End If
If Sh.Range("J" & i).Value <> "" Then
msg.Attachments.Add Sh.Range("J" & i).Value
End If
If Sh.Range("K" & i).Value <> "" Then
msg.Attachments.Add Sh.Range("K" & i).Value
End If
msg.Display
Sh.Range("B" & i).Value = "Done"
Next i
MsgBox "Email Draft is ready", vbInformation
End Sub
Body
属性包含代表消息正文的纯文本:
msg.Body = Sh.Range("G" & i).Value
如果您需要设置超链接或任何其他格式,则需要构建格式良好的 HTML 标记,然后将其分配给
HTMLBody
属性。