复制并粘贴格式化的单元格/范围(从excel)到Outlook邮件

时间:2014-10-13 16:21:42

标签: vba email excel-vba outlook excel

在工作中发送状态报告时,我正在使用工具(启用宏的工作簿)。但我的代码所做的只是将范围复制为图像,然后以HTML格式粘贴到电子邮件正文中。 但问题是人们想要复制该范围的内容,但由于它是邮件中的图像,他们无法做到。 我的问题是,有没有办法可以添加复制的单元格,将其放入HTML代码然后使用构建的html创建电子邮件?

以下是我的代码部分。第一部分是将范围复制为图像,然后保存在某个位置:

Application.ScreenUpdating = False
Set intervalo = Range("B18:F21").CurrentRegion
intervalo.CopyPicture xlScreen, xlPicture
Set cht = ActiveSheet.ChartObjects.Add(0, 0, intervalo.Width, intervalo.Height)
ActiveWindow.SmallScroll Down:=-100
cht.Chart.Paste
cht.Chart.Export Dir & "resp.bmp"
cht.Delete

然后,邮件的正文就像这样:

Msg = "<HTML><font face = Arial size =2>"
Msg = Msg & "Hi All, <br><br>"
Msg = Msg & "Please see below status for demand "
Msg = Msg & "<b><font color=#0033CC>"
Msg = Msg & Worksheets("Execution").Range("C8")
Msg = Msg & " - "
Msg = Msg & Worksheets("Execution").Range("C9")
Msg = Msg & "</font></b>"
Msg = Msg & ", "
Msg = Msg & "of system "
Msg = Msg & "<b><font color=#0033CC>"
Msg = Msg & Worksheets("Execution").Range("C10")
Msg = Msg & "</font></b>"
Msg = Msg & ", in environment "
Msg = Msg & "<b><font color=#0033CC>"
Msg = Msg & Worksheets("Execution").Range("C11")
Msg = Msg & "</font></b>"
Msg = Msg & ".<br>"

然后将插入之前复制的图像:

Msg = Msg & "<p class=section1 style='text-align:justify;text-justify:inter-ideograph;" & _
             "background:#E6E6E6'><b><span style='font-size:10.0pt;font-family:Arial'>" & _
             "Contacts" & _
             "</span></b><span style='font-size:10.0pt;font-family:Arial'><o:p></o:p></span> </p>"

Msg = Msg & "<img src='" & Dir & "resp.bmp'></img>"

Msg = Msg & "</font></b>"

我想知道如何在spreadhsheet“Execution”中复制实际范围,然后将其插入html代码(变量Msg)。 非常感谢!

1 个答案:

答案 0 :(得分:0)

当然,您需要在我们的代码中创建一个HTML表,从Excel单元格构建其内容,并设置MailItem.HTMLBody属性。