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

Bagaimana cara mengirim / email berbagai sel melalui Outlook dari Excel?

Pernahkah Anda mengalami masalah setelah menyelesaikan laporan di lembar kerja, dan Anda perlu mengirim ke berbagai sel di lembar kerja ini yang berisi beberapa data penting untuk penerima spesifik Anda. Adakah cara cepat bagi Anda untuk mengirim email tentang rentang ini dari Excel tanpa membuka Outlook?

Kirim rentang sel sebagai lampiran dari Excel dengan kode VBA

Kirim rentang sel sebagai badan dari Excel dengan kode VBA


panah gelembung kanan biruKirim rentang sel sebagai lampiran dari Excel dengan kode VBA

Kode VBA berikut dapat membantu Anda mengirim rentang pilihan Anda sebagai lampiran di Excel. Harap lakukan seperti ini:

1. Buka buku kerja Anda lalu tahan ALT + F11 kunci untuk membuka Jendela Microsoft Visual Basic for Applications.

2. Klik Menyisipkan > Modul, dan tempel kode berikut di Jendela Modul.

Kode VBA: kirim rentang sel sebagai lampiran dari Excel

Sub SendRange()
'Update 20131209
Dim xFile As String
Dim xFormat As Long
Dim Wb As Workbook
Dim Wb2 As Workbook
Dim Ws As Worksheet
Dim FilePath As String
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
Dim WorkRng As Range
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set Wb = Application.ActiveWorkbook
Wb.Worksheets.Add
Set Ws = Application.ActiveSheet
WorkRng.Copy Ws.Cells(1, 1)
Ws.Copy
Set Wb2 = Application.ActiveWorkbook
Select Case Wb.FileFormat
Case xlOpenXMLWorkbook:
    xFile = ".xlsx"
    xFormat = xlOpenXMLWorkbook
Case xlOpenXMLWorkbookMacroEnabled:
    If Wb2.HasVBProject Then
        xFile = ".xlsm"
        xFormat = xlOpenXMLWorkbookMacroEnabled
    Else
        xFile = ".xlsx"
        xFormat = xlOpenXMLWorkbook
    End If
Case Excel8:
    xFile = ".xls"
    xFormat = Excel8
Case xlExcel12:
    xFile = ".xlsb"
    xFormat = xlExcel12
End Select
FilePath = Environ$("temp") & "\"
FileName = Wb.Name & Format(Now, "dd-mmm-yy h-mm-ss")
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
With OutlookMail
    .To = "skyyang@extendoffice.com"
    .CC = ""
    .BCC = ""
    .Subject = "information of kte"
    .Body = "hello, please check and read this document. "
    .Attachments.Add Wb2.FullName
    .Send
End With
Wb2.Close
Kill FilePath & FileName & xFile
Set OutlookMail = Nothing
Set OutlookApp = Nothing
Ws.Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

Note: Pada kode di atas, Anda dapat mengubah informasi berikut sesuai kebutuhan Anda.

  • .To = "skyyang @extendoffice.com "
  • .CC = ""
  • .BCC = ""
  • .Subject = "informasi kte"
  • .Body = "halo, silakan periksa dan baca dokumen ini."

3. Lalu klik F5 kunci untuk menjalankan kode ini, dan kotak prompt akan muncul untuk mengingatkan Anda memilih rentang yang ingin Anda kirim. Lihat tangkapan layar:

doc-kirim-rentang1

4. Lalu klik OK, dan kotak prompt akan muncul, setelah bilah kemajuan selesai, klik mengizinkan, lalu rentang sel tertentu telah dikirim ke penerima Anda sebagai lampiran.

doc-kirim-rentang2


panah gelembung kanan biruKirim rentang sel sebagai badan dari Excel dengan kode VBA

Jika Anda ingin mengirim rentang tertentu sebagai bagian dari badan pesan dari Excel, Anda juga dapat menerapkan kode VBA berikut untuk menyelesaikannya.

Kutools untuk Excel, dengan lebih dari 120 fungsi praktis, membuat pekerjaan Anda lebih mudah. 

1. Aktifkan lembar kerja Anda dan tahan ALT + F11 kunci untuk membuka Jendela Microsoft Visual Basic for Applications.

2. Klik Menyisipkan > Modul, dan tempel kode berikut di Jendela Modul.

Kode VBA: kirim rentang sel sebagai badan dari Excel

Sub EmailRange()
'Update 20131209
Dim WorkRng As Range
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
WorkRng.Select
ActiveWorkbook.EnvelopeVisible = True
With ActiveSheet.MailEnvelope
    .Introduction = "Please read this email."
    .Item.To = "skyyang@extendoffice.com"
    .Item.Subject = "information of kte"
    .Item.Send
End With
Application.ScreenUpdating = True
End Sub

Catatan: Dalam kode di atas, Anda dapat mengubah informasi berikut sesuai kebutuhan Anda.

  • .Introduction = "Silakan baca email ini."
  • .Item.To = "skyyang @extendoffice.com "
  • .Item.Subject = "informasi kte"

3. Lalu klik F5 kunci untuk menjalankan kode ini, dan kotak prompt akan muncul untuk mengingatkan Anda untuk memilih rentang yang ingin Anda kirim.

doc-kirim-rentang1

4. Kemudian klik OK, dan kotak prompt akan muncul, setelah bilah kemajuan selesai, klik mengizinkan, dan kemudian rentang sel tertentu telah dikirim ke penerima Anda sebagai badan pesan.

doc-kirim-rentang2

Catatan:

1. Kode-kode ini hanya tersedia saat Outlook sebagai program email Anda.

2. Setelah mengirim lembar kerja saat ini, Anda dapat membuka Outlook Anda untuk memastikan apakah email telah berhasil dikirim.


Artikel terkait:

Bagaimana cara mengirim lembar kerja hanya melalui Outlook dari Excel?

Bagaimana cara mengirim buku kerja saat ini melalui Outlook dari Excel?


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 (26)
Belum ada peringkat. Jadilah yang pertama memberi peringkat!
Komentar ini diminimalkan oleh moderator di situs
Hai, saya menggunakan marco yang memilih sel yang diperlukan untuk mengirim email. saya telah menggabungkan ini dengan makro lain sehingga saya mendapatkannya untuk membuka "email baru" masalah saya sekarang adalah jika Anda memasukkan banyak informasi ke dalam satu sel maka itu hanya membutuhkan iformaiton yang Anda lihat tidak semua informasi di sel itu ada ide ?? terima kasih banyak atas bantuan Anda dengan sorakan ini
Komentar ini diminimalkan oleh moderator di situs
Halo semua
Saya punya proyek untuk memilih rentang di lembar 1 untuk dikirim melalui email satu per satu ke banyak alamat email yang ditulis di lembar 2 di kolom A dan jika kolom B kosong dengan subjek tertentu dan setelah mengirim dia menulis di lembar 2 kolom b dikirim
Dan untuk menunggu waktu 10 detik untuk mengirim email berikutnya sebagai kondisi server
Adakah yang bisa membantu saya?   
Komentar ini diminimalkan oleh moderator di situs
Hai, Bisakah Anda memberi tahu saya cara menambahkan tanda tangan dan baris pengantar kedua ke email ini untuk program kedua. Terima kasih sebelumnya.
Komentar ini diminimalkan oleh moderator di situs
bagus & bermanfaat, kerja bagus!!!
Komentar ini diminimalkan oleh moderator di situs
Sangat berguna. Terima kasih . Saya memiliki daftar alamat email pada lembar yang sama. Ketika saya mengklik satu alamat email , rentang sel yang dipilih akan dikirim sebagai lampiran ke email ini. Bisakah tolong bantu saya dalam hal ini? Terima kasih banyak.
Komentar ini diminimalkan oleh moderator di situs
Hai, Sangat Baik Dijelaskan. Alih-alih mengirim buku kerja baru, kami hanya dapat menyalin dan menempelkan rentang yang dipilih ke badan email dan mengirim. Saya tidak ingin mengirim Rentang yang dipilih sebagai Gambar. Saya ingin mengirim seperti tampilan tabel di badan email. Bisakah kita melakukan itu??
Komentar ini diminimalkan oleh moderator di situs
Terima kasih, Ini sangat berguna tetapi bagaimana jika saya perlu menambahkan beberapa deskripsi di badan surat sebelum mengirimnya. Tolong sarankan kodenya.
Komentar ini diminimalkan oleh moderator di situs
Hai,
Semuanya terlihat bagus tetapi tidak memberikan batas rentang yang dipilih, Bisakah Anda menyarankan.
Komentar ini diminimalkan oleh moderator di situs
Terima kasih banyak Saya menemukan solusi ini begitu lama.
Komentar ini diminimalkan oleh moderator di situs
Kerja bagus. Akan lebih baik untuk melihat ini dikirim secara otomatis. Apa yang harus saya lakukan agar tidak meminta kesalahan sebelum melanjutkan untuk mengirim?
Komentar ini diminimalkan oleh moderator di situs
bisakah kita memasukkan alamat email sebanyak-banyaknya untuk dikirim?
Komentar ini diminimalkan oleh moderator di situs
Hai, Carey, semua VBA di atas dapat menambahkan banyak alamat email (Ke, BCC, CC) untuk dikirim dengan menggunakan ; sebagai pemisah. Misalnya, .To = "skyyang@extendoffice.com; tes1@extendoffice.com; tes2@extendoffice.com "
Komentar ini diminimalkan oleh moderator di situs
ich möchte das kopierte nicht als Datei di e-Mail einfügen, sondern per salin dan tempel di die E-Mail einfügen. Wie geht das di dem VBA-Code?
Komentar ini diminimalkan oleh moderator di situs
Hai Saya memiliki pengaturan tabel yang saya ingin staf isi dan kemudian tombol perintah yang kemudian akan secara otomatis menghasilkan email, namun saya ingin data dari tabel berada di badan email. Apakah ada kode untuk itu? 
Terima kasih 
Komentar ini diminimalkan oleh moderator di situs
Halo semua
Saya punya proyek untuk memilih rentang di lembar 1 untuk dikirim melalui email satu per satu ke banyak alamat email yang ditulis di lembar 2 di kolom A dan jika kolom B kosong dengan subjek tertentu dan setelah mengirim dia menulis di lembar 2 kolom b dikirim
Dan untuk menunggu waktu 10 detik untuk mengirim email berikutnya sebagai kondisi server
Adakah yang bisa membantu saya?   
Komentar ini diminimalkan oleh moderator di situs
Halo semua
Saya punya proyek untuk memilih rentang di lembar 1 untuk dikirim melalui email satu per satu ke banyak alamat email yang ditulis di lembar 2 di kolom A dan jika kolom B kosong dengan subjek tertentu dan setelah mengirim dia menulis di lembar 2 kolom b dikirim
Dan untuk menunggu waktu 10 detik untuk mengirim email berikutnya sebagai kondisi server
Adakah yang bisa membantu saya?   
Komentar ini diminimalkan oleh moderator di situs
Hai, hriad, " jika kolom B kosong dengan subjek tertentu dan setelah mengirim dia menulis di lembar 2 kolom b dikirim
Dan untuk menunggu waktu 10 detik untuk mengirim email berikutnya sebagai kondisi server" Saya tidak mengerti ini. Tolong ceritakan kembali tentang kebutuhan Anda.
Komentar ini diminimalkan oleh moderator di situs
Halo, Sunny
pertama-tama, terima kasih atas bantuan Anda, karena server memberikan syarat untuk tidak mengirim banyak email dalam satu detik, saya ingin menunggu 10 detik setelah mengirim email pertama dan yang berikutnya.
Komentar ini diminimalkan oleh moderator di situs
Hai, hriad, silakan coba kode di bawah ini, setelah menjalankannya, akan muncul dialog untuk memilih rentang yang ingin Anda kirim, kemudian dikirim ke alamat di lembar 2 kolom A dan dengan subjek di kolom B. Setiap 10 detik , kirim ke satu alamat. Anda dapat mengubah kode "Silakan baca email ini" sesuai kebutuhan.
SubKirimEmailRange()

'PerbaruiOlehExtendoffice20220414

Redup WorkRng Sebagai Rentang

Redupkan xSU, EV Sebagai Boolean

Redupkan xWSh Sebagai Lembar Kerja

Redupkan x Hitung Sebagai Bilangan Bulat

Redupkan xI Sebagai Integer

On Error Resume Next

xTitleId = "KutoolsforExcel"

'pilih rentang yang digunakan untuk mengirim sebagai badan

Atur WorkRng = Application.InputBox("Range", xTitleId, Application.Selection.Address, , , , , 8)

Jika WorkRng Bukan Apa-apa Kemudian Keluar Sub
WorkRng.Aktifkan
WorkRng.Pilih

Setel xWSh = ActiveWorkbook.Worksheets("Sheet2") 'lembar yang berisi alamat dan subjek

xCount = xWSh.UsedRange.Rows.Count

xSU = Aplikasi.Pembaruan Layar

EV = ActiveWorkbook.EnvelopeVisible

Application.ScreenUpdating = Salah


Untuk xI = 1 Untuk xHitung

Jika (xWSh.Range("A" & xI) = "") Maka
Keluar Untuk
End If
ActiveWorkbook.EnvelopeVisible = Benar
Dengan ActiveSheet.MailEnvelope
.Introduction = "Silakan baca email ini."

.Item.To = xWSh.Range("A" & xI)

.Item.Subjek = xWSh.Range("B" & xI)

.Item.Kirim
Berakhir dengan
Jika (xI = xHitung) Maka

Keluar Untuk

End If

Application.Tunggu Sekarang + TimeValue("0:00:10")

Next


Application.ScreenUpdating = xSU

ActiveWorkbook.EnvelopeVisible = EV

End Sub

Komentar ini diminimalkan oleh moderator di situs
Halo, Sunny
Banyak banyak Terima kasih atas usaha Anda .... Terima kasih banyak
Komentar ini diminimalkan oleh moderator di situs
Bisakah kita memperbaiki rentang? secara makro itu sendiri
Komentar ini diminimalkan oleh moderator di situs
Halo,

Mam plik z 6 arkuszami. Kady z arkuszy 2-6 musi zostać wysłany do innej grup odbiorców jako załącznik excela. Czy da się ke podpiąć pod 5 przycisków?
Komentar ini diminimalkan oleh moderator di situs
Halo, pawerl
Untuk mengatasi masalah Anda, artikel di bawah ini dapat membantu Anda, silakan periksa:

https://www.extendoffice.com/documents/excel/7178-send-each-sheet-to-different-email.html

Terima kasih!
Komentar ini diminimalkan oleh moderator di situs
Terima kasih untuk ini! Saya akan mengujinya segera setelah saya kembali dari liburan. Punya satu pertanyaan lagi. Memiliki masalah dengan menjalankan kode vba dengan menggunakan tombol Activex (tidak ada tindakan sama sekali) bahkan jika kode berfungsi dengan baik pada mode edit atau saat dijalankan dengan ctrl+tombol yang dipilih dari keyboard. Saya baru memulai perjalanan vba dan tidak punya
ide apa yang saya lakukan salah :/
Komentar ini diminimalkan oleh moderator di situs
Halo, pawerl
Anda hanya perlu menyalin dan menempelkan kode ke dalam Microsoft Visual Basic untuk Aplikasi jendela, lalu klik tombol Run tombol dari bilah alat seperti tangkapan layar di bawah ini: (Note: dalam kode, S1 adalah sel yang berisi alamat email yang ingin Anda kirimi email. Silakan ubah sesuai kebutuhan Anda.)

https://www.extendoffice.com/images/stories/comments/comment-skyyang/doc-send-emails.png

Silakan coba lagi!
Komentar ini diminimalkan oleh moderator di situs
Hai,

Saya telah melakukan semuanya seperti di atas dan hasilnya adalah: semua berfungsi dengan baik terlepas dari tombolnya :) Tidak terlalu peduli tentang ini saat ini :)

Terima kasih banyak!!! topik ditutup :)
Belum ada komentar yang diposting di sini
Tinggalkan komentar anda
Posting sebagai Tamu
×
Beri peringkat pos ini:
0   Karakter
Lokasi yang Disarankan