2012-04-23 45 views
6

Tôi muốn gửi biểu đồ Excel trong nội dung email (Outlook) (không phải tệp đính kèm) từ VB, bất kỳ ai biết cách thực hiện việc này?Cách gửi hình ảnh nhúng trong email từ excel

quyết:
Chỉ cần thêm chi tiết hơn một chút để trả lời dưới đây bạn sẽ cần sau (có thể làm với một số cải tiến).

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") 

Trả lời

5

Có vẻ như cách tốt nhất là để xuất bảng xếp hạng:

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

Và sau đó thêm hình ảnh vào email HTML cơ thể bạn:

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

Xác nhận bởi cả hai technetmrexcel

+0

Cảm ơn đã dành khoảng 2 ngày để tìm giải pháp. – aronp

+0

@JMax. Điều này làm việc giống như một sự quyến rũ khi tôi cố gắng gửi hình ảnh đến địa chỉ triển vọng của riêng tôi, nhưng khi tôi thử chuyển tiếp cùng một thư với hình ảnh được nhúng cho đồng nghiệp của tôi, họ không thể nhìn thấy hình ảnh. Điều tương tự cũng xảy ra khi tôi thử chuyển tiếp nó tới tài khoản gmail của tôi. có ai biết cái gì làm ra thế này không? – vestland

+0

@ 123apd khi chuyển tiếp email trong Outlook, bạn phải tự xác nhận bạn muốn tải xuống hình ảnh (cố gắng thực hiện bằng tay trước và sau đó tự động hóa) – JMax

3

tôi nghĩ rằng tôi muốn thêm giải pháp của tôi ở đây ngoài việc một ở trên vì nó được sử dụng cả một phụ và đường dẫn tệp tạm thời, trong trường hợp bạn quan tâm.

tôi đã thay đổi mã từ here để chèn một biểu đồ sử dụng một con đường tạm thời (họ làm điều tương tự sử dụng một loạt các ô trong bảng tính):

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 

Trong cơ thể HTML đặt:

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

Bằng cách sử dụng "olByValue, 0", tệp đính kèm được thêm tại vị trí 0 và không hiển thị trong email dưới dạng tệp đính kèm.

Các vấn đề liên quan