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

Jak wysłać konkretny wykres w wiadomości e-mail za pomocą VBA w programie Excel?

Możesz wiedzieć, jak wysłać wiadomość e-mail przez Outlooka w programie Excel z kodem VBA. Czy wiesz jednak, jak dołączyć określony wykres z określonego arkusza roboczego do treści wiadomości e-mail? Ten artykuł pokaże Ci metodę rozwiązania tego problemu.

Wyślij określony wykres w wiadomości e-mail w programie Excel z kodem VBA


Wyślij określony wykres w wiadomości e-mail w programie Excel z kodem VBA

Wykonaj następujące czynności, aby wysłać konkretny wykres w wiadomości e-mail z kodem VBA w programie Excel.

1. W arkuszu roboczym zawierającym wykres, który chcesz załączyć w treści wiadomości e-mail, naciśnij inny + F11 klawisze, aby otworzyć Microsoft Visual Basic for Applications okno.

2. w Microsoft Visual Basic for Applications kliknij wstawka > Moduł. Następnie skopiuj poniższy kod VBA do okna Code.

Kod VBA: wyślij określony wykres w wiadomości e-mail w programie 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

Uwagi: W kodzie zmień adres e-mail odbiorcy i temat wiadomości e-mail w wierszu .To = „xrr@163.com” i linii .Subject = "Dodaj wykres do treści poczty programu Outlook" , Sheet1 to arkusz zawierający wykres, który chcesz wysłać, zmień go na własny.

3. wciśnij F5 klucz do uruchomienia kodu. W otwarciu Kutools dla programu Excel W oknie dialogowym wprowadź nazwę wykresu, który chcesz załączyć w treści wiadomości e-mail, a następnie kliknij przycisk OK przycisk. Zobacz zrzut ekranu:

Następnie wiadomość e-mail jest tworzona automatycznie z określonym wykresem wyświetlanym w treści wiadomości e-mail, jak pokazano poniżej. Kliknij przycisk Wyślij, aby wysłać tę wiadomość e-mail.


Podobne artykuły:

 

 

 


Najlepsze narzędzia biurowe

Kutools dla programu Excel rozwiązuje większość problemów i zwiększa produktywność o 80%

  • Ponowne użycie: Szybko włóż złożone wzory, wykresy i wszystko, czego używałeś wcześniej; Szyfruj komórki z hasłem; Utwórz listę mailingową i wysyłaj e-maile ...
  • Pasek Super Formula (łatwo edytować wiele wierszy tekstu i formuły); Układ do czytania (łatwe odczytywanie i edytowanie dużej liczby komórek); Wklej do filtrowanego zakresu...
  • Scal komórki / wiersze / kolumny bez utraty danych; Podziel zawartość komórek; Połącz zduplikowane wiersze / kolumny... Zapobiegaj zduplikowanym komórkom; Porównaj zakresy...
  • Wybierz Duplikat lub Unikalny Wydziwianie; Wybierz puste wiersze (wszystkie komórki są puste); Super Find i Fuzzy Find w wielu zeszytach ćwiczeń; Losowy wybór ...
  • Dokładna kopia Wiele komórek bez zmiany odwołania do formuły; Automatyczne tworzenie odniesień do wielu arkuszy; Wstaw punktory, Pola wyboru i nie tylko ...
  • Wyodrębnij tekst, Dodaj tekst, Usuń według pozycji, Usuń przestrzeń; Tworzenie i drukowanie podsumowań stronicowania; Konwertuj zawartość komórek i komentarze...
  • Super filtr (zapisz i zastosuj schematy filtrów do innych arkuszy); Zaawansowane sortowanie według miesiąca / tygodnia / dnia, częstotliwości i innych; Specjalny filtr pogrubieniem, kursywą ...
  • Połącz skoroszyty i arkusze robocze; Scal tabele na podstawie kluczowych kolumn; Podziel dane na wiele arkuszy; Konwersja wsadowa xls, xlsx i PDF...
  • Ponad 300 zaawansowanych funkcji. Obsługuje Office / Excel 2007-2021 i 365. Obsługuje wszystkie języki. Łatwe wdrażanie w przedsiębiorstwie lub organizacji. Pełne funkcje 30-dniowa bezpłatna wersja próbna. 60-dniowa gwarancja zwrotu pieniędzy.
karta kte 201905

Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę

  • Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
  • Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
  • Zwiększa produktywność o 50% i redukuje setki kliknięć myszką każdego dnia!
officetab dół

 

 

Sortuj komentarze według
Komentarze (13)
Brak ocen. Oceń jako pierwszy!
Ten komentarz został zminimalizowany przez moderatora na stronie
kiedy wpisuję nazwę wykresu, wiadomość nie generuje okna dialogowego po prostu się zamyka, masz jakiś pomysł, co zrobiłem źle? Śledziłem każdy krok
Ten komentarz został zminimalizowany przez moderatora na stronie
Problem polega na tym, że nie możemy ustawić nazw dla obiektów wykresu, takich jak tabele. Aby działać, musisz przekazać identyfikator liczby całkowitej. Na przykład, jeśli masz tylko 1 wykres w „Arkuszu1”, spróbuj przekazać wartość 1, gdy pojawi się msgbox.

PS: przepraszam za zły angielski :]
Ten komentarz został zminimalizowany przez moderatora na stronie
hola como puede enviar por correo, una tabla dinámica, y no un grafico
Ten komentarz został zminimalizowany przez moderatora na stronie
W kodzie jest błąd: "\") + 1) & "" " width=700 height=50W pogrubionym tekście środkowy powinien być pojedynczym cudzysłowem

Ten komentarz został zminimalizowany przez moderatora na stronie
Zawiera wykres jako załącznik. Czy masz pomysł, jak dołączyć go jako obrazek do samej treści wiadomości. Dziękuję, Youssef
Ten komentarz został zminimalizowany przez moderatora na stronie
Ten sam problem, jakieś rozwiązanie?
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć J,
Kod został zaktualizowany. Proszę spróbować. Przepraszam za niedogodności.


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
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć,
mi nic sie nie załącza, czy coś tutaj, aby wpisać jeszcze?
xPath = "co tutaj trzeba wprowadzić?"
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć Kuba,
Proszę usunąć / tag w <img src="/.
Błąd jest spowodowany przez redaktora w serwisie.
Przepraszamy za niedogodności.
Ten komentarz został zminimalizowany przez moderatora na stronie
cześć, możliwość zmiany programu, tylko do podglądu transakcji, przy wysyłce adresu, aby przejść do przeglądania i wykresu nie widać ("Nie można zmienić opcji, aby zostać zarejestrowany. Plik może przeniesiony lub poprawiony albo zostanie zastąpiony nazwą). Czy z Czy też taki ktoś miał czy tylko u mnie taki zonk? Prosze o pomoc, tutaj kod, który dotyczy wykresum już tak mało brakuje :)

Dim xChartName jako ciąg
Dim xChartPath jako ciąg
Dim xPath jako ciąg
Dim xChart jako ChartObject
On Error Resume Next
Dim wydzialy As String
wydzialy = lista.Komórki(3, 75)
xChartName = Application.InputBox(wydzialy, "KuTools for Excel", , , , , , 2) 'Wykres1 '"Proszę podać nazwę wykresu:"
If xChartName = "" Następnie wyjdź z Sub
Set xChart = Sheets("Wykresy").ChartObjects(xChartName) 'Zmień "Sheet1" na nazwę arkusza roboczego
Jeśli xChart to nic, wyjdź z Sub
xChartPath = Application.ActiveWorkbook.Path & "\" & Environ("USERNAME") & VBA.Format(VBA.Now(), "DD_MM_YY_HH_MM_SS") & ".svg" '.bmp '.svg '.svg ma większą jakość jakości
xŚcieżka = " "
xChart.Chart.Eksportuj xChartPath


Wygaś aplikację jako obiekt
Wygaś pocztę jako obiekt
Set OutApp = CreateObject("Outlook.Application")
Ustaw OutMail = OutApp.CreateItem(0)
Z OutMail
.Do = e-maile(b)
.CC = e-maile_dw(b)
.Subject = "XXXX" ' - " & lista.Cells(i, 66)
.Załączniki.Dodaj xChartPath
.HTMLBody = "treść" & xPath

Ustaw .SendUsingAccount = OutApp.Session.Accounts.Item(1)

.Pokaz
Kończyć z
Zabij xChartPath
Set OutMail = Nic
Set OutApp = Nic
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć Kuba,
Kod został zaktualizowany. Odbiorca może normalnie przeglądać wykres. Proszę spróbować.
Uwagi: W kodzie proszę zmienić „Wykres 1” na własną nazwę wykresu. I podaj adres e-mail w polu Do.
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
Ten komentarz został zminimalizowany przez moderatora na stronie
CZEŚĆ, chcę dodać spację w treści wiadomości, którego słowa kluczowego powinienem użyć.
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć pavan chougule,
Kolejne dwa wiersze kodu zawierają treść wiadomości e-mail. Możesz ręcznie zmodyfikować treść wiadomości e-mail, naciskając klawisz spacji na klawiaturze, aby dodać spację.
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>"
Nie ma tu jeszcze żadnych komentarzy
Zostaw swój komentarz
Publikowanie jako gość
×
Oceń ten post:
0   Postacie
Sugerowane lokalizacje

Bądż na bieżąco

Prawa autorskie © 2009 - www.extendoffice.com. | Wszelkie prawa zastrzeżone. Zasilany przez ExtendOffice, | Mapa strony
Microsoft i logo Office są znakami towarowymi lub zastrzeżonymi znakami towarowymi Microsoft Corporation w Stanach Zjednoczonych i / lub innych krajach.
Chronione przez Sectigo SSL