如何从Excel中发送电子邮件中的embedded式图像

我想发送一个电子邮件(Outlook)(不作为附件)从VB的身体Excel图表,任何人都知道如何做到这一点?

解决了:
只是添加更多的细节来回答下面你需要以下(可以做一些改进)。

Sheets(2).ChartObjects(1).Chart.Export "C:\temp\Chart2.png" 

….

  .HTMLBody = "<html xmlns:o='urn:schemas-microsoft-com:office:office'" & _ "xmlns: x = 'urn:schemas-microsoft-com:office:excel'" & _ "xmlns='http://www.w3.org/TR/REC-html40'> " & _ "<head></head><body><img src='Chart2.png'></body></html>" 

  .Attachments.Add ("C:\temp\Chart2.png") 

似乎最好的办法是导出图表

 Sheets(1).ChartObjects("Chart 1").Chart.Export "C:\Chart1.png" 

然后将图像添加到您的邮件HTML正文中

 .HTMLBody = .HTMLBody & "< img src='c:\folder\filename.png'>" 

由technet和mrexcel确认

我想我会在这里添加我的解决scheme,除了上面的那个,因为它使用一个子文件path和一个临时文件path,万一你有兴趣。

我从这里更改了代码,使用临时path插入图表(他们使用工作簿中的一系列单元格执行相同的操作):

 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 

在HTML身上放:

 Call createGraph("Graphs", "Chart 1", "filename") TempFilePath = Environ$("temp") & "\" .Attachments.Add TempFilePath & "filename.jpg", olByValue, 0 .HTMLBody = .HTMLBody & "<img src='cid:filename.jpg'>" 

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