VBA使用Outlook和Excel保留格式生成带有附件的电子邮件

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

我有一个名为“ Test.xlsx”的Excel文档,其结构如下:

enter image description here

我有以下VBA代码:

Sub Send_multiple_Email()
Dim sh As Worksheet
Dim sPath As String
Dim sName As String
Dim OA As Object
Dim msg As Object
Dim i As Integer
Dim last_row As Integer

Set sh = ThisWorkbook.Sheets("Ark1")
Set OA = CreateObject("Outlook.Application")
last_row = Application.WorksheetFunction.CountA(sh.Range("A:A"))

For i = 2 To last_row
Set msg = OA.createitem(0)

msg.to = sh.Range("A" & i).Value
msg.cc = sh.Range("B" & i).Value
msg.Subject = sh.Range("C" & i).Value
msg.body = sh.Range("D" & i).Value

If sh.Range("E" & i).Value <> "" Then
msg.attachments.Add sh.Range("E" & i).Value
End If

sPath = Environ("UserProfile")

'msg.display
'msg.send
msg.SaveAs "C:\Users\xx\Desktop\Save_emails_in_this_folder\" & msg.Subject & ".msg", 3

Next i

End Sub

(我从Excel spedsheet运行VBA)

我保存电子邮件而不是发送电子邮件,这样我可以在发送之前检查它们是否正确。

VBA有效。它使用自定义的邮件文本和自定义的附件将电子邮件保存在正确的位置,但是不包含格式。 (粗文本不粗,并且徽标(即图像)也消失了]

一种解决方案是在单词或外表中写上“正文”,但我似乎无法使其正常工作。

感谢您的任何帮助。

谢谢你。

excel vba outlook email-attachments
1个回答
2
投票

您正在设置纯文本属性:

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