Note: The other languages of the website are Google-translated. Back to English

Cum să trimiteți o anumită diagramă într-un e-mail cu vba în Excel?

Este posibil să știți cum să trimiteți un e-mail prin Outlook în Excel cu cod VBA. Cu toate acestea, știți cum să atașați o anumită diagramă într-o anumită foaie de lucru în corpul e-mailului? Acest articol vă va arăta metoda de a rezolva această problemă.

Trimiteți o diagramă specifică într-un e-mail în Excel cu cod VBA


Trimiteți o diagramă specifică într-un e-mail în Excel cu cod VBA

Vă rugăm să procedați după cum urmează pentru a trimite o anumită diagramă într-un e-mail cu cod VBA în Excel.

1. În foaia de lucru conține diagrama pe care doriți să o atașați în corpul e-mailului, apăsați pe Alt + F11 tastele pentru a deschide Microsoft Visual Basic pentru aplicații fereastră.

2. În Microsoft Visual Basic pentru aplicații fereastra, faceți clic pe Insera > Module. Apoi copiați mai jos codul VBA în fereastra Cod.

Cod VBA: trimiteți o diagramă specifică într-un e-mail în Excel

Sub mailHTMLsend()
'Updated by Extendoffice 2018/3/5
    Dim xOutApp As Object
    Dim xOutMail As Object
    Dim xStartMsg As String
    Dim xEndMsg As String
    Dim xChartName As String
    Dim xChartPath As String
    Dim xPath As String
    Dim xChart As ChartObject
    On Error Resume Next
    xChartName = Application.InputBox("Please enter the chart name:", "KuTools for Excel", , , , , , 2)
    If xChartName = "" Then Exit Sub
    Set xChart = Sheets("Sheet1").ChartObjects(xChartName) 'Change "Sheet1" to your worksheet name
    If xChart Is Nothing Then Exit Sub
    Set xOutApp = CreateObject("Outlook.Application")
    Set xOutMail = xOutApp.CreateItem(0)
    xStartMsg = "<font size='5' color='black'> Good Day," & "<br> <br>" & "Please find the chart below: " & "<br> <br> </font>"
    xEndMsg = "<font size='4' color='black'> Many Thanks," & "<br> <br> </font>"
    xChartPath = Application.ActiveWorkbook.Path & "\" & Environ("USERNAME") & VBA.Format(VBA.Now(), "DD_MM_YY_HH_MM_SS") & ".bmp"
    xPath = "<p align='Left'><img src=" & "cid:" & Mid(xChartPath, InStrRev(xChartPath, "\") + 1) & """  width=700 height=500 > <br> <br>"
    xChart.Chart.Export xChartPath
    With xOutMail
        .To = "xrr@163.com"
        .Subject = "Add Chart in outlook mail body"
        .Attachments.Add xChartPath
        .HTMLBody = xStartMsg & xPath & xEndMsg
        .Display
    End With
    Kill xChartPath
    Set xOutMail = Nothing
    Set xOutApp = Nothing
End Sub

notițe: În cod, vă rugăm să modificați adresa de e-mail a destinatarului și subiectul e-mailului în linie .To = "xrr@163.com" și linie .Subject = "Adăugați o diagramă în corpul de poștă electronică Outlook" , Sheet1 este foaia care conține diagrama pe care doriți să o trimiteți, vă rugăm să o schimbați la a dvs.

3. apasă pe F5 tasta pentru a rula codul. În deschidere Kutools pentru Excel caseta de dialog, introduceți numele graficului pe care îl veți atașa în corpul e-mailului, apoi faceți clic pe OK buton. Vedeți captura de ecran:

Apoi, un e-mail este creat automat, cu graficul specificat afișat în corpul e-mailului, așa cum este prezentat mai jos. Faceți clic pe butonul Trimiteți pentru a trimite acest e-mail.


Legate de articole:

 

 

 


Cele mai bune instrumente de productivitate Office

Kutools pentru Excel vă rezolvă majoritatea problemelor și vă crește productivitatea cu 80%

  • reutilizarea: Introduceți rapid formule complexe, diagrame și orice ai folosit anterior; Criptați celulele cu parola; Creați o listă de corespondență și trimiteți e-mailuri ...
  • Super Formula Bar (editați cu ușurință mai multe linii de text și formulă); Layout de citire (citiți și editați cu ușurință un număr mare de celule); Lipiți la interval filtrat...
  • Merge celule / rânduri / coloane fără a pierde date; Conținut de celule divizate; Combinați rânduri / coloane duplicate... Prevenirea celulelor duplicate; Comparați gamele...
  • Selectați Duplicat sau Unic Rânduri; Selectați Rânduri goale (toate celulele sunt goale); Super Find și Fuzzy Find în multe cărți de lucru; Selectare aleatorie ...
  • Copie exactă Mai multe celule fără modificarea referinței formulelor; Creați automat referințe la foi multiple; Introduceți gloanțe, Casete de selectare și multe altele ...
  • Extrageți textul, Adăugați text, eliminați după poziție, Eliminați spațiul; Creați și imprimați subtotaluri de paginare; Convertiți conținutul dintre celule și comentarii...
  • Super Filtru (salvați și aplicați scheme de filtrare altor foi); Sortare avansată după lună / săptămână / zi, frecvență și multe altele; Filtru special cu bold, italic ...
  • Combinați cărți de lucru și foi de lucru; Merge Tables pe baza coloanelor cheie; Împărțiți datele în mai multe foi; Conversia în loturi xls, xlsx și PDF...
  • Peste 300 de funcții puternice. Suportă Office / Excel 2007-2021 și 365. Acceptă toate limbile. Implementare ușoară în întreprinderea sau organizația dvs. Funcții complete Probă gratuită de 30 de zile. Garanție de returnare a banilor de 60 de zile.
fila kte 201905

Fila Office aduce interfața cu file în Office și vă face munca mult mai ușoară

  • Activați editarea și citirea cu file în Word, Excel, PowerPoint, Publisher, Access, Visio și Project.
  • Deschideți și creați mai multe documente în filele noi ale aceleiași ferestre, mai degrabă decât în ​​ferestrele noi.
  • Vă crește productivitatea cu 50% și reduce sute de clicuri de mouse pentru dvs. în fiecare zi!
fundul officetab

 

 

Comentarii (13)
Încă nu există evaluări. Fii primul care evaluează!
Acest comentariu a fost redus la minimum de moderatorul de pe site
când introduc numele diagramei, e-mailul nu generează caseta de dialog doar se închide, aveți idee ce am greșit? Am urmat fiecare pas
Acest comentariu a fost redus la minimum de moderatorul de pe site
Problema este că nu putem seta nume pentru obiectele diagramă, cum ar fi tabele. Trebuie să transmiteți ID-ul întregului pentru a funcționa. De exemplu, dacă aveți doar 1 diagramă în „Sheet1”, încercați să treceți valoarea 1 când apare mesajul.

PS: scuze pentru engleza proasta :]
Acest comentariu a fost redus la minimum de moderatorul de pe site
hola como poate trimite por correo, o tablă dinamică, și nu un grafic
Acest comentariu a fost redus la minimum de moderatorul de pe site
Există o eroare în cod: "\") + 1) & "" " width=700 height=50În textul aldin, cel din mijloc ar trebui să fie o singură virgulă

Acest comentariu a fost redus la minimum de moderatorul de pe site
Include graficul ca atașament. Aveți idee cum să o includeți ca imagine în corpul e-mailului în sine. Mulțumesc, Youssef
J     TU
Acest comentariu a fost redus la minimum de moderatorul de pe site
Aceeași problemă, vreo soluție?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Salut J,
Codul a fost actualizat. Vă rugăm să încercați. Îmi pare rău pentru neplăcerile create.


Sub mailHTMLsend()
'Updated by Extendoffice 2018/3/5
    Dim xOutApp As Object
    Dim xOutMail As Object
    Dim xStartMsg As String
    Dim xEndMsg As String
    Dim xChartName As String
    Dim xChartPath As String
    Dim xPath As String
    Dim xChart As ChartObject
    On Error Resume Next
    xChartName = Application.InputBox("Please enter the chart name:", "KuTools for Excel", , , , , , 2)
    If xChartName = "" Then Exit Sub
    Set xChart = Sheets("Sheet1").ChartObjects(xChartName) 'Change "Sheet1" to your worksheet name
    If xChart Is Nothing Then Exit Sub
    Set xOutApp = CreateObject("Outlook.Application")
    Set xOutMail = xOutApp.CreateItem(0)
    xStartMsg = "<font size='5' color='black'> Good Day," & "<br> <br>" & "Please find the chart below: " & "<br> <br> </font>"
    xEndMsg = "<font size='4' color='black'> Many Thanks," & "<br> <br> </font>"
    xChartPath = Application.ActiveWorkbook.Path & "\" & Environ("USERNAME") & VBA.Format(VBA.Now(), "DD_MM_YY_HH_MM_SS") & ".bmp"
    xPath = "<p align='Left'><img src="/%20&%20"cid:" & Mid(xChartPath, InStrRev(xChartPath, "\") + 1) & """  width=700 height=500 > <br> <br>"
    xChart.Chart.Export xChartPath
    With xOutMail
        .To = "xrr@163.com"
        .Subject = "Add Chart in outlook mail body"
        .Attachments.Add xChartPath
        .HTMLBody = xStartMsg & xPath & xEndMsg
        .Display
    End With
    Kill xChartPath
    Set xOutMail = Nothing
    Set xOutApp = Nothing
End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună ziua,
mi nic sie nie załącza, czy coś tutaj należałoby wpisać jeszcze?
xPath = "co tutaj trzeba wprowadzić?"
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună Kuba,
Vă rugăm să eliminați / etichetați <img src="/.
Eroarea este cauzată de editorul din site.
Ne pare rău pentru neplăcerile create.
Acest comentariu a fost redus la minimum de moderatorul de pe site
cześć, pełny kod działa tylko do momentu podglądu komunikatu, przy wysyłce adresat otrzymuje błąd i wykresu nie widać ("Nie można wyświetlić połączonego obrazu. Plik mógł zostać przeniesiony lub usunięty albo zmieniono jego nazwę. Sprawdź czy łącze wskazuje poprawny plik i lokazlizację.") Czy z Was też tak ktoś miał czy tylko u mnie taki zonk? Prosze o pomoc, tutaj kod, który dotyczy wykresum już tak mało brakuje :)

Dim xChartName ca șir
Dim xChartPath ca șir
Dim xPath ca șir
Dim xChart ca ChartObject
La data de eroare CV următoare
Dim wydzialy As String
wydzialy = lista.Cells(3, 75)
xChartName = Application.InputBox(wydzialy, "KuTools for Excel", , , , , , 2) 'Wykres1 '"Vă rugăm să introduceți numele diagramei:"
Dacă xChartName = "" Ieșiți din sub
Setați xChart = Sheets("Wykresy").ChartObjects(xChartName) „Schimbați „Sheet1” la numele foii de lucru
Dacă xChart nu este nimic, ieșiți din sub
xChartPath = Application.ActiveWorkbook.Path & "\" & Environ("USERNAME") & VBA.Format(VBA.Now(), "DD_MM_YY_HH_MM_SS") & ".svg" '.bmp '.svg '.svg ma lepsza jakość
xPath = " "
xChart.Chart.Export xChartPath


Dim OutApp ca obiect
Dim OutMail ca obiect
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
Cu OutMail
.To = e-mailuri(b)
.CC = emails_dw(b)
.Subject = "XXXX" ' - " & lista.Cells(i, 66)
.Atașamente.Adăugați xChartPath
.HTMLBody = "treść" & xPath

Setați .SendUsingAccount = OutApp.Session.Accounts.Item(1)

.Afişa
Se termina cu
Omorâți xChartPath
Set OutMail = Nimic
Set OutApp = Nimic
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună Kuba,
Codul a fost actualizat. Destinatarul poate vizualiza diagrama în mod normal. Vă rugăm să încercați.
notițe: În cod, vă rugăm să schimbați „Graficul 1" la propriul nume de diagramă. Și specificați adresa de e-mail în câmpul Către.
Sub mailHTMLsend()
'Updated by Extendoffice 20221013
    Dim xOutApp As Object
    Dim xOutMail As Object
    Dim xStartMsg As String
    Dim xEndMsg As String
    Dim xChartName 'As String
    Dim xChartPath As String
    Dim xPath As String
    Dim xChart As ChartObject
    On Error Resume Next
    xChartName = "Chart 1" 'The name of the chart in the current worksheet you want to send.
    If xChartName = "" Then Exit Sub
    Set xChart = Application.ActiveSheet.ChartObjects(xChartName)
    If xChart Is Nothing Then Exit Sub
    
    Set xOutApp = CreateObject("Outlook.Application")
    Set xOutMail = xOutApp.CreateItem(0)
    
    xStartMsg = "<font size='5' color='black'> Good Day," & "<br> <br>" & "Please find the chart below: " & "<br> <br> </font>"
    xEndMsg = "<font size='4' color='black'> Many Thanks," & "<br> <br> </font>"
    xChartPath = Application.ActiveWorkbook.Path & "\" & Environ("USERNAME") & VBA.Format(VBA.Now(), "DD_MM_YY_HH_MM_SS") & ".bmp"
    
    xPath = "<p align='Left'><img src="/%20&%20"cid:" & Mid(xChartPath, InStrRev(xChartPath, "\") + 1) & """  width=700 height=500 > <br> <br>"
    
    xChart.Chart.Export xChartPath
    With xOutMail
        .To = "Email Address"
        .Subject = "Add Chart in outlook mail body"
        .Attachments.Add xChartPath
        .HTMLBody = xStartMsg & xPath & xEndMsg
        .Display
    End With
    Kill xChartPath
    Set xOutMail = Nothing
    Set xOutApp = Nothing
End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună ziua, vreau să adaug spațiu în corpul e-mailului, ce cuvânt cheie ar trebui să folosesc.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Buna pavan chougule,
Următoarele două rânduri din cod conțin conținutul corpului e-mailului. Puteți modifica manual corpul e-mailului apăsând tasta spațiu de pe tastatură pentru a adăuga un spațiu.
xStartMsg = "<font size='5' color='black'> Good Day," & "<br> <br>" & "Please find the chart below: " & "<br> <br> </font>"
xEndMsg = "<font size='4' color='black'> Many Thanks," & "<br> <br> </font>"
Nu există comentarii postate aici încă
Lăsa comentarii
Postare ca invitat
×
Evaluează această postare:
0   Caractere
Locații sugerate

Urmărește-ne

Copyright © 2009 - www.extendoffice.com. | Toate drepturile rezervate. Cu sprijinul ExtendOffice. | Harta site-ului
Microsoft și sigla Office sunt mărci comerciale sau mărci comerciale înregistrate ale Microsoft Corporation în Statele Unite și / sau în alte țări.
Protejat de Sectigo SSL