用于起草带有附件和超链接地址的批量电子邮件的Vba代码,如Excel中提到的

问题描述 投票:0回答:1

我正在寻找 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
excel vba outlook hyperlink office-automation
1个回答
0
投票

Body
属性包含代表消息正文的纯文本:

msg.Body = Sh.Range("G" & i).Value

如果您需要设置超链接或任何其他格式,则需要构建格式良好的 HTML 标记,然后将其分配给

HTMLBody
属性。

© www.soinside.com 2019 - 2024. All rights reserved.