繁体   English   中英

使用Excel VBA发送带有体内图表对象的电子邮件-Office 2013

[英]Using Excel VBA to send email with chart object in body - Office 2013

我已经使用Excel VBA创建了一个从excel提取信息的电子邮件,然后直接从excel发送电子邮件。 但是,我还希望能够在电子邮件正文中包含一个图表对象。 我遇到了一些将图表转换为图像,然后使用HTML将图像嵌入电子邮件正文的示例。 我想尝试将其保留为excel图表对象,而不是图像。

我还发现了一些使用“ ActiveChart.ChartArea.Copy”并使用sendkeys或其他代码行将其粘贴到图表中的代码示例,但似乎也不起作用。 唯一要粘贴的是来自VBA模块的代码。

如果有人能告诉我我可能想念的东西,我将不胜感激。 下面的代码显示了我尝试过的内容。 根据我阅读或尝试过的不同内容,我遗留了一些我尝试过的项目,但对似乎不起作用的所有内容进行了注释。

Private Sub CommandButton2_Click()

Dim mainWB As Workbook
Dim SendID
Dim CCID
Dim Subject
Dim Body

On Error GoTo Handler

Set myOutlook = GetObject(, "Outlook.Application")
Set myMessage = myOutlook.CreateItem(olMailItem)
Set mainWB = ActiveWorkbook

SendID = mainWB.Sheets("Mail").Range("B1").Value
CCID = mainWB.Sheets("Mail").Range("B2").Value
Subject = mainWB.Sheets("Mail").Range("B3").Value
Body = mainWB.Sheets("Mail").Range("B4").Value

ActiveChart.ChartArea.Copy

With myMessage
    .To = SendID
    If CCID <> "" Then
        .CC = CCID
    End If
    .Subject = Subject
   'ActiveChart.ChartArea.Copy
    .Body = Body
        .Display
   ' Set wEditor = o.activeInspector.WordEditor
   ' wEditor.Application.Selection.Paste

End With

SendKeys "^{END}"
SendKeys "^({v})", True

Set myOutlook = Nothing
Set myMessage = Nothing

Exit Sub

Handler:
Set myOutlook = CreateObject("Outlook.Application")
Err.Clear
Resume Next

End Sub

电子邮件(在撰写本文时)仅支持图像(或动画gif)。 您的问题是为什么我们建立了图像图表,以便您可以轻松地将图表嵌入到电子邮件中。

只需生成一个URL(请参阅我们的文档 ),将其嵌入到您的电子邮件中( <img src="https://image-charts.com/chart?[...]" ),就可以完成!

奖励,它还支持gif并永久免费提供:)

极地面积图图像

(注意:它是已弃用的Google图片图表的替代品,我是Image-Charts的创建者)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM