如何从excel发送电子邮件中的嵌入图像

如何从excel发送电子邮件中的嵌入图像,excel,outlook,Excel,Outlook,我想从VB发送电子邮件(Outlook)(不是附件)正文中的Excel图表,有人知道怎么做吗 已解决: 只是为了在下面的回答中添加更多的细节 您将需要以下内容(可能需要一些改进) 似乎最好的方法是导出图表: Sheets(1).ChartObjects("Chart 1").Chart.Export "C:\Chart1.png" .HTMLBody = .HTMLBody & "< img src='c:\folder\filename.png'>" 然后将图像添加到

我想从VB发送电子邮件(Outlook)(不是附件)正文中的Excel图表,有人知道怎么做吗

已解决:
只是为了在下面的回答中添加更多的细节 您将需要以下内容(可能需要一些改进)


似乎最好的方法是导出图表:

Sheets(1).ChartObjects("Chart 1").Chart.Export "C:\Chart1.png"
.HTMLBody = .HTMLBody & "< img src='c:\folder\filename.png'>"
然后将图像添加到邮件HTML正文中

Sheets(1).ChartObjects("Chart 1").Chart.Export "C:\Chart1.png"
.HTMLBody = .HTMLBody & "< img src='c:\folder\filename.png'>"
.HTMLBody=.HTMLBody&“

经和确认,我想除了上面的解决方案之外,我还要在这里添加我的解决方案,因为它同时使用子文件路径和临时文件路径,以防您感兴趣

我将代码从更改为使用临时路径插入图表(它们使用工作簿中的一系列单元格执行相同的操作):

在HTML正文中,输入:

Call createGraph("Graphs", "Chart 1", "filename")
TempFilePath = Environ$("temp") & "\"
.Attachments.Add TempFilePath & "filename.jpg", olByValue, 0
.HTMLBody = .HTMLBody & "<img src='cid:filename.jpg'>"
调用createGraph(“图形”、“图表1”、“文件名”)
TempFilePath=Environ$(“temp”)和“\”
.Attachments.Add TempFilePath&“filename.jpg”,olByValue,0
.HTMLBody=.HTMLBody&“

通过使用“olByValue,0”,附件被添加到位置0,并且在电子邮件中不作为附件可见。

感谢您花了大约2天的时间寻找解决方案。@JMax。当我尝试将图像发送到自己的outlook地址时,这种方法非常有效,但当我尝试将带有嵌入图像的相同邮件转发给同事时,他们无法看到图像。当我尝试将它转发到我的gmail帐户时,也发生了同样的事情。知道是什么原因造成的吗?@123apd在Outlook中转发电子邮件时,您必须手动确认是否要下载图像(尝试先手动完成,然后自动完成)
Sub createGraph(nameSheet As String, nameChart As String, nameFile As String)
  ThisWorkbook.Activate
  Worksheets(nameSheet).Activate
  With ThisWorkbook.Worksheets(nameSheet).ChartObjects(nameChart)
    .Activate
    .Chart.Export Environ$("temp") & "\" & nameFile & ".jpg", "JPG"
  End With
End Sub
Call createGraph("Graphs", "Chart 1", "filename")
TempFilePath = Environ$("temp") & "\"
.Attachments.Add TempFilePath & "filename.jpg", olByValue, 0
.HTMLBody = .HTMLBody & "<img src='cid:filename.jpg'>"