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

Bagaimana cara mengirim bagan tertentu dalam email dengan vba di Excel?

Anda mungkin tahu cara mengirim email melalui Outlook di Excel dengan kode VBA. Namun, tahukah Anda cara melampirkan bagan tertentu di lembar kerja tertentu ke dalam badan email? Artikel ini akan menunjukkan kepada Anda metode untuk mengatasi masalah ini.

Kirim bagan tertentu dalam email di Excel dengan kode VBA


Kirim bagan tertentu dalam email di Excel dengan kode VBA


Harap lakukan hal berikut untuk mengirim bagan tertentu dalam email dengan kode VBA di Excel.

1. Di lembar kerja berisi grafik yang ingin Anda lampirkan di badan email, tekan lain + F11 kunci untuk membuka Microsoft Visual Basic untuk Aplikasi jendela.

2. Dalam Microsoft Visual Basic untuk Aplikasi jendela, silakan klik Menyisipkan > Modul. Kemudian salin kode VBA di bawah ini ke jendela Kode.

Kode VBA: Kirim bagan tertentu dalam email di 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

Note: Di dalam kode, harap ubah alamat email penerima dan subjek email sesuai .To = "xrr@163.com" dan garis .Subject = "Tambahkan Bagan di badan surat prospek" , Sheet1 adalah lembar yang berisi grafik yang ingin Anda kirim, silakan ubah menjadi milik Anda.

3. tekan F5 kunci untuk menjalankan kode. Dalam pembukaan Kutools untuk Excel kotak dialog, masukkan nama bagan yang akan Anda lampirkan di badan email, lalu klik OK tombol. Lihat tangkapan layar:

Kemudian email dibuat secara otomatis dengan bagan yang ditentukan ditampilkan di badan email seperti gambar di bawah ini. Silakan klik tombol Kirim untuk mengirim email ini.


Artikel terkait:

 

 

 


Alat Produktivitas Kantor Terbaik

Kutools for Excel Memecahkan Sebagian Besar Masalah Anda, dan Meningkatkan Produktivitas Anda hingga 80%

  • Reuse: Masukkan dengan cepat rumus, bagan yang kompleks dan apa pun yang pernah Anda gunakan sebelumnya; Enkripsi Sel dengan kata sandi; Buat Milis dan mengirim email ...
  • Bilah Formula Super (dengan mudah mengedit beberapa baris teks dan rumus); Membaca Tata Letak (membaca dan mengedit sel dalam jumlah besar dengan mudah); Tempel ke Rentang yang Difilter...
  • Gabungkan Sel / Baris / Kolom tanpa kehilangan Data; Pisahkan Konten Sel; Gabungkan Baris / Kolom Duplikat... Mencegah Sel Duplikat; Bandingkan Rentang...
  • Pilih Duplikat atau Unik Baris; Pilih Baris Kosong (semua sel kosong); Temukan Super dan Temukan Fuzzy di Banyak Buku Kerja; Pilih Acak ...
  • Salinan Tepat Beberapa Sel tanpa mengubah referensi rumus; Buat Referensi Otomatis ke Beberapa Lembar; Sisipkan Poin, Kotak Centang, dan lainnya ...
  • Ekstrak Teks, Tambahkan Teks, Hapus berdasarkan Posisi, Hapus Space; Membuat dan Mencetak Subtotal Paging; Konversi Konten Antar Sel dan Komentar...
  • Filter Super (simpan dan terapkan skema filter ke sheet lain); Penyortiran Lanjutan menurut bulan / minggu / hari, frekuensi dan lainnya; Filter Khusus dengan huruf tebal, miring ...
  • Gabungkan Workbooks dan WorkSheets; Gabungkan Tabel berdasarkan kolom kunci; Pisahkan Data menjadi Beberapa Lembar; Konversi Batch xls, xlsx dan PDF...
  • Lebih dari 300 fitur canggih. Mendukung Office / Excel 2007-2019 dan 365. Mendukung semua bahasa. Penerapan yang mudah di perusahaan atau organisasi Anda. Fitur lengkap uji coba gratis 30 hari. Jaminan uang kembali 60 hari.
tab kte 201905

Tab Office Membawa antarmuka Tab ke Office, dan Membuat Pekerjaan Anda Jauh Lebih Mudah

  • Aktifkan pengeditan dan pembacaan tab di Word, Excel, PowerPoint, Publisher, Access, Visio, dan Project.
  • Buka dan buat banyak dokumen di tab baru di jendela yang sama, bukan di jendela baru.
  • Tingkatkan produktivitas Anda hingga 50%, dan kurangi ratusan klik mouse untuk Anda setiap hari!
officetab bawah

 

 

Urutkan komentar berdasarkan
komentar (11)
Belum ada peringkat. Jadilah yang pertama memberi peringkat!
Komentar ini diminimalkan oleh moderator di situs
ketika saya memasukkan nama bagan, surat tidak menghasilkan kotak dialog hanya menutup, tahu apa yang telah saya lakukan salah? Saya telah mengikuti setiap langkah
Komentar ini diminimalkan oleh moderator di situs
Masalahnya adalah kami tidak dapat menetapkan nama untuk Objek Bagan seperti tabel. Anda harus memberikan ID integer agar berfungsi. Misalnya, jika Anda hanya memiliki 1 bagan di "Sheet1", coba berikan nilai 1 saat kotak pesan muncul.

PS: maaf untuk bahasa Inggris yang buruk:]
Komentar ini diminimalkan oleh moderator di situs
hola como puede enviar por correo, una tabla dinámica, y no un gráfico
Komentar ini diminimalkan oleh moderator di situs
Ada kesalahan dalam kode: "\") + 1) & "" " lebar=700 tinggi=50Dalam teks tebal, yang di tengah harus berupa koma terbalik tunggal

Komentar ini diminimalkan oleh moderator di situs
Ini termasuk bagan sebagai lampiran. Apakah Anda tahu bagaimana memasukkannya sebagai gambar di badan surat itu sendiri. Terima kasih, Youssef
Komentar ini diminimalkan oleh moderator di situs
Masalah yang sama, ada solusi?
Komentar ini diminimalkan oleh moderator di situs
Hai J
Kode telah diperbarui. Ayo cobalah. Maaf untuk ketidaknyamanannya.


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
Komentar ini diminimalkan oleh moderator di situs
halo,
mi nic sie nie nie załącza, czy coś tutaj należałoby wpisać jeszcze?
xPath = "co tutaj trzeba wprowadzić?"
Komentar ini diminimalkan oleh moderator di situs
Hai Kuba,
Tolong hapus / tandai <img src="/.
Kesalahan ini disebabkan oleh editor di situs.
Maaf atas ketidaknyamanan ini.
Komentar ini diminimalkan oleh moderator di situs
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 Apakah też tak ktoś miał czy tylko u mnie taki zonk? Prosze o pomoc, tutaj kod, który dotyczy wykresum już tak mało brakuje :)

Redupkan xChartName Sebagai String
Redupkan xChartPath Sebagai String
Redupkan xPath Sebagai String
Redupkan xChart Sebagai ChartObject
On Error Resume Next
Redupkan wydzialy Sebagai String
wydzialy = lista.Sel(3, 75)
xChartName = Application.InputBox(wydzialy, "KuTools for Excel", , , , , , 2) 'Wykres1 '"Silakan masukkan nama bagan:"
Jika xChartName = "" Kemudian Keluar dari Sub
Atur xChart = Sheets("Wykresy").ChartObjects(xChartName) 'Ubah "Sheet1" menjadi nama lembar kerja Anda
Jika xChart Bukan Apa-apa Kemudian Keluar dari 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.Ekspor xChartPath


Redupkan OutApp Sebagai Objek
Redupkan OutMail Sebagai Objek
Atur OutApp = CreateObject("Outlook.Application")
Atur OutMail = OutApp.CreateItem(0)
Dengan OutMail
.Ke = email(b)
.CC = email_dw(b)
.Subjek = "XXXX" ' - " & lista.Sel(i, 66)
.Lampiran.Tambahkan xChartPath
.HTMLBody = "treść" & xPath

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

.Tampilan
Berakhir dengan
Bunuh xChartPath
Atur OutMail = Tidak Ada
Atur OutApp = Tidak Ada
Komentar ini diminimalkan oleh moderator di situs
Hai Kuba,
Kode telah diperbarui. Penerima dapat melihat grafik secara normal. Ayo cobalah.
Note: Pada kode tersebut, silahkan ubah "Grafik 1" ke nama bagan Anda sendiri. Dan tentukan alamat email di bidang Kepada.
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="/ & "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
Belum ada komentar yang diposting di sini
Tinggalkan komentar anda
Posting sebagai Tamu
×
Beri peringkat pos ini:
0   Karakter
Lokasi yang Disarankan