如何使用 Excel VBA 在 Outlook 电子邮件中嵌入图片?

How to embed pictures in an Outlook Email using Excel VBA?

我需要在邮件正文中嵌入两张图片(附上也无所谓)。

此代码已附加,但未嵌入。

'Attach(0)' means full path of 1st pic
'Attach(1)' means full path of 2nd pic
'Temp(0) means "shortname1.jpg"
'Temp(1) means "shortname2.jpg"

Dim Temp(1) As String
Temp(0) = Replace(Attach(0), ruta & "\", "")
Temp(1) = Replace(Attach(1), ruta & "\", "")
Set MItem = OutlookApp.CreateItem(olMailItem)
With MItem
    .To = Email
    .CC = CopyEmail
    .Subject = Localidad & " " & "- Pay Period " & Format(Semana, "DD-MMM-YYYY") & " " & "Report"
    .Attachments.Add lnvo
    .Attachments.Add Attach(0), 1
    .Attachments.Add Attach(1), 1
    .HTMLBody = "<html><p>Charts</p>" & "<img src=""cid:" & Temp(0) & """height=520 width=750>" & "<img src=""cid:" & Temp(1) & """height=520 width=750>"
    .Body = Msg
    .Send
    '
End With

根据@ChrisFNZ 和@braX 的评论,我删除了“.Body”并在 'HTMLBody'('Msg' 变量)中插入了“.Body”文本。

另一方面,我决定在 Temp() 变量中插入双引号。而且效果很好。

    Dim Temp(1) As String
    Temp(0) = Replace(Attach(0), ruta & "\", "") & """"
    Temp(1) = Replace(Attach(1), ruta & "\", "") & """"
    Set MItem = OutlookApp.CreateItem(olMailItem)
    With MItem
        .To = Email
        .CC = CopyEmail
        .Subject = Localidad & " " & "- Pay Period " & Format(Semana, "DD-MMM-YYYY") & " " & "Report"
        .Attachments.Add lnvo
        .Attachments.Add Attach(0), 1
        .Attachments.Add Attach(1), 1
        .HTMLBody = "<html><p" & Msg & "</p>" & "<img src=""cid:" & Temp(0) & " height=150 width=750>" & "<img src=""cid:" & Temp(1) & " height=150 width=750>"
        '.Body = Msg
        .Send
    End With

谢谢大家!