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

Bagaimana cara mengirim email secara otomatis berdasarkan nilai sel di Excel?

Misalkan Anda ingin mengirim email melalui Outlook ke penerima tertentu berdasarkan nilai sel tertentu di Excel. Misalnya, jika nilai sel D7 di lembar kerja lebih besar dari 200, maka email dibuat secara otomatis. Artikel ini memperkenalkan metode VBA bagi Anda untuk menyelesaikan masalah ini dengan cepat.

Kirim email secara otomatis berdasarkan nilai sel dengan kode VBA


Kirim email secara otomatis berdasarkan nilai sel dengan kode VBA

Harap lakukan hal berikut untuk mengirim email berdasarkan nilai sel di Excel.

1. Di lembar kerja Anda perlu mengirim email berdasarkan nilai selnya (di sini mengatakan sel D7), klik kanan tab lembar, dan pilih Lihat kode dari menu konteks. Lihat tangkapan layar:

2. Dalam bermunculan Microsoft Visual Basic untuk Aplikasi jendela, silakan salin dan tempel kode VBA di bawah ini ke dalam jendela kode lembar.

Kode VBA: Kirim email melalui Outlook berdasarkan nilai sel di Excel

Dim xRg As Range
'Update by Extendoffice 2018/3/7
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If Target.Cells.Count > 1 Then Exit Sub
  Set xRg = Intersect(Range("D7"), Target)
    If xRg Is Nothing Then Exit Sub
    If IsNumeric(Target.Value) And Target.Value > 200 Then
        Call Mail_small_Text_Outlook
    End If
End Sub
Sub Mail_small_Text_Outlook()
    Dim xOutApp As Object
    Dim xOutMail As Object
    Dim xMailBody As String
    Set xOutApp = CreateObject("Outlook.Application")
    Set xOutMail = xOutApp.CreateItem(0)
    xMailBody = "Hi there" & vbNewLine & vbNewLine & _
              "This is line 1" & vbNewLine & _
              "This is line 2"
    On Error Resume Next
    With xOutMail
        .To = "Email Address"
        .CC = ""
        .BCC = ""
        .Subject = "send by cell value test"
        .Body = xMailBody
        .Display   'or use .Send
    End With
    On Error GoTo 0
    Set xOutMail = Nothing
    Set xOutApp = Nothing
End Sub

Catatan:

1). Dalam kode VBA, D7 serta nilai> 200 adalah nilai sel dan sel yang akan Anda gunakan untuk mengirim email.
2). Harap ubah badan email sesuai kebutuhan Anda xMailBody baris dalam kode.
3). Ganti Alamat Email dengan alamat email penerima di baris .To = "Alamat Email".
4). Dan tentukan penerima Cc dan Bcc yang Anda butuhkan di .CC = “” serta Bc = “” bagian.
5). Akhirnya ganti subjek email sejalan .Subject = "kirim dengan tes nilai sel".

3. tekan lain + Q kunci bersama untuk menutup Microsoft Visual Basic untuk Aplikasi jendela.

Mulai sekarang, saat nilai yang Anda masukkan di sel D7 lebih besar dari 200, email dengan penerima dan badan tertentu akan dibuat secara otomatis di Outlook. Anda dapat mengklik Kirim tombol untuk mengirim email ini. Lihat tangkapan layar:

Catatan:

1. Kode VBA hanya berfungsi saat Anda menggunakan Outlook sebagai program email Anda.

2. Jika data yang dimasukkan di sel D7 adalah nilai teks, jendela email akan muncul juga.


Kirim email dengan mudah melalui Outlook berdasarkan bidang milis yang dibuat di Excel:

The Mengirim email kegunaan Kutools untuk Excel membantu pengguna mengirim email melalui Outlook berdasarkan milis yang dibuat di Excel.
Unduh dan coba sekarang! (Jejak gratis 30 hari)


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 (298)
Rated 5 dari 5 · peringkat 1
Komentar ini diminimalkan oleh moderator di situs
Bagaimana seharusnya kode dimodifikasi, untuk diterapkan ke seluruh rentang sel?
Komentar ini diminimalkan oleh moderator di situs
Dear Debby,
Silakan coba kode VBA di bawah ini untuk menyelesaikan masalah.

Sub Lembar Kerja Pribadi_Rubah (Rentang Target As ByVal)
Jika Target.Cells.Count > 1 Kemudian Keluar Sub
If (Tidak Berpotongan(Target, Rentang("A1:D4")) Tidak Ada) Dan (Target.Nilai > 200) Kemudian
Hubungi Mail_small_Text_Outlook
End If
End Sub
SubMail_small_Text_Outlook()
Redupkan xOutApp Sebagai Objek
Redupkan xOutMail Sebagai Objek
Redupkan xMailBody Sebagai String
Setel xOutApp = CreateObject("Outlook.Application")
Setel xOutMail = xOutApp.CreateItem(0)
xMailBody = "Halo" & vbNewLine & vbNewLine & _
"Ini adalah baris 1" & vbNewLine & _
"Ini baris 2"
On Error Resume Next
Dengan xOutMail
.To = "Alamat email penerima Anda"
.CC = ""
.BCC = ""
.Subject = "kirim dengan tes nilai sel"
.Body = xMailBody
.Tampilkan 'atau gunakan .Kirim
Berakhir dengan
Pada Kesalahan GoTo 0
Setel xOutMail = Tidak Ada
Setel xOutApp = Tidak Ada
End Sub
Komentar ini diminimalkan oleh moderator di situs
Saya mengalami kesulitan mendapatkan kode ini untuk meminta jika nilai dalam sel diubah secara tidak langsung. Misalnya, jika saya memiliki persamaan Sum yang mengubah nilai ini secara otomatis. Saat persamaan berjalan dan nilainya melebihi nilai yang ditetapkan untuk meminta email, itu tidak akan terjadi, kecuali saya sendiri yang secara fisik mengubah nomornya. Apakah ada cara untuk membuat email prompt meskipun diubah secara tidak langsung?
Komentar ini diminimalkan oleh moderator di situs
Yordania yang terhormat,
Kode VBA berikut dapat membantu Anda memecahkan masalah. Jangan lupa untuk mengganti "Alamat Email" dengan alamat email penerima di kode. Terima kasih.

Sub Lembar Kerja Pribadi_Rubah (Rentang Target As ByVal)
Redupkan xRgPre Sebagai Rentang
On Error Resume Next
Jika Target.Cells.Count > 1 Kemudian Keluar Sub
Setel xRg = Rentang ("D7")
Tetapkan xRgPre = xRg.Preseden
Jika xRg.Value > 200 Maka
Jika Target.Address = xRg.Address Maka
Hubungi Mail_small_Text_Outlook
ElseIf (Bukan xRgPre Bukan Apa-apa) Dan (Intersect(Target, xRgPre).Address = Target.Address) Lalu
Hubungi Mail_small_Text_Outlook
End If
End If
End Sub
SubMail_small_Text_Outlook()
Redupkan xOutApp Sebagai Objek
Redupkan xOutMail Sebagai Objek
Redupkan xMailBody Sebagai String
Setel xOutApp = CreateObject("Outlook.Application")
Setel xOutMail = xOutApp.CreateItem(0)
xMailBody = "Halo" & vbNewLine & vbNewLine & _
"Ini adalah baris 1" & vbNewLine & _
"Ini baris 2"
On Error Resume Next
Dengan xOutMail
.To = "Alamat Email"
.CC = ""
.BCC = ""
.Subject = "kirim dengan tes nilai sel"
.Body = xMailBody
.Tampilkan 'atau gunakan .Kirim
Berakhir dengan
Pada Kesalahan GoTo 0
Setel xOutMail = Tidak Ada
Setel xOutApp = Tidak Ada
End Sub
Komentar ini diminimalkan oleh moderator di situs
Saya telah memodifikasi kode yang disarankan untuk mencoba membuatnya berfungsi untuk aplikasi saya.
Mengubah xRg = Range("C2:C40") dan If xRg.Value = -1.

Masalah yang saya alami adalah kapan saja ada perubahan pada sel mana pun dan selama salah satu sel dalam jangkauan saya = -1, ia akan memanggil Mail_small_Text_Outlook.
Saya mencoba menelepon hanya jika ada sel dalam jangkauan saya yang diubah secara tidak langsung menjadi -1.
Saya juga bertanya-tanya apakah dan bagaimana mungkin memenuhi dua kriteria.
Seperti memeriksa rentang A dan rentang B dan jika memenuhi kriteria, panggil fungsi.

Terima kasih sebelumnya atas bantuannya. Saya baru mengenal semua ini tetapi membaca utas ini membuat saya sekitar 90% di sana.


Sub Lembar Kerja Pribadi_Rubah (Rentang Target As ByVal)
Redupkan xRgPre Sebagai Rentang
On Error Resume Next
Jika Target.Cells.Count > 1 Kemudian Keluar Sub
Tetapkan xRg = Rentang("C2:C40")
Tetapkan xRgPre = xRg.Preseden
Jika xRg.Value = -1 Maka
Jika Target.Address = xRg.Address Maka
Hubungi Mail_small_Text_Outlook
ElseIf (Bukan xRgPre Bukan Apa-apa) Dan (Intersect(Target, xRgPre).Address = Target.Address) Lalu
Hubungi Mail_small_Text_Outlook
End If
End If
End Sub
Komentar ini diminimalkan oleh moderator di situs
Saya menggunakan kode ini dengan satu-satunya perubahan adalah saya telah menerapkannya ke seluruh kolom [Set xRg = Range("D4:D13")]. Sekarang peristiwa terpicu setiap kali perhitungan dibuat terlepas dari apakah katup di Kolom D di bawah nilai target. Adakah ide mengapa begitu?


Redupkan Xrg Sebagai Rentang
Sub Lembar Kerja Pribadi_Rubah (Rentang Target As ByVal)
Redupkan xRgPre Sebagai Rentang
On Error Resume Next
Jika Target.Cells.Count > 1 Kemudian Keluar Sub
Atur Xrg = Rentang("D4:D13")
Tetapkan xRgPre = Xrg.Preseden
Jika Xrg.Value < 1200 Maka
Jika Target.Address = Xrg.Address Kemudian
Hubungi Mail_small_Text_Outlook
ElseIf (Bukan xRgPre Bukan Apa-apa) Dan (Intersect(Target, xRgPre).Address = Target.Address) Lalu
Hubungi Mail_small_Text_Outlook
End If
End If
End Sub

SubMail_small_Text_Outlook()
Redupkan xOutApp Sebagai Objek
Redupkan xOutMail Sebagai Objek
Redupkan xMailBody Sebagai String
Setel xOutApp = CreateObject("Outlook.Application")
Setel xOutMail = xOutApp.CreateItem(0)
xMailBody = "Hai" & vbNewLine & _
"Uji vba" _
& vbNewLine & _
"Jalur 2."
On Error Resume Next
Dengan xOutMail
.Untuk = ""
.CC = ""
.BCC = ""
.Subjek = "Tes Email Otomatis"
.Body = xMailBody
.Tampilan
Berakhir dengan
Pada Kesalahan GoTo 0
Setel xOutMail = Tidak Ada
Setel xOutApp = Tidak Ada

End Sub


Terima kasih.
Komentar ini diminimalkan oleh moderator di situs
Halo

Saya mengalami kesulitan karena penerima Email harus ditambahkan lagi dan lagi satu per satu. Mohon petunjuk jika daftar penerima email dapat ditambahkan ke fungsi ini sehingga fungsi akan memilih alamat email dari daftar alamat email yang disediakan atau daftar upload dan fungsi mengirimkan email, sudah disusun ke penerima yang diinginkan.
Komentar ini diminimalkan oleh moderator di situs
Henry yang terhormat,
Kode VBA berikut dapat membantu Anda memecahkan masalah. Silakan tempatkan skrip VBA ke dalam modul lembar kerja Anda. Ketika nilai dalam sel yang ditentukan memenuhi kondisi, kotak dialog Kutools for Excel akan muncul, silakan pilih sel yang berisi alamat email penerima dan kemudian klik tombol OK. Kemudian email dengan penerima tertentu terbuka. Silakan kirim sesuai kebutuhan Anda.

Sub Lembar Kerja Pribadi_Rubah (Rentang Target As ByVal)
Jika Target.Cells.Count > 1 Kemudian Keluar Sub
Setel xRg = Rentang ("D7")
Jika xRg = Target Dan Target.Value > 200 Maka
Hubungi Mail_small_Text_Outlook
End If
End Sub
SubMail_small_Text_Outlook()
Redupkan xOutApp Sebagai Objek
Redupkan xOutMail Sebagai Objek
Redupkan xMailBody Sebagai String
Redupkan xRgMsg Sebagai Rentang
Redupkan xCell Sebagai Rentang
Set xRgMsg = Application.InputBox("Silahkan pilih sel alamat:", "Kutools for Excel", , , , , , 8)
xMailBody = "Halo" & vbNewLine & vbNewLine & _
"Ini adalah baris 1" & vbNewLine & _
"Ini baris 2"
On Error Resume Next
Untuk Setiap xCell Dalam xRgMsg
Setel xOutApp = CreateObject("Outlook.Application")
Setel xOutMail = xOutApp.CreateItem(0)
Dengan xOutMail
.Ke = xCell.Value
.CC = ""
.BCC = ""
.Subject = "kirim dengan tes nilai sel"
.Body = xMailBody
.Tampilkan 'atau gunakan .Kirim
Berakhir dengan
xOutApp = Tidak Ada
xOutMail = Tidak Ada
Next
Pada Kesalahan GoTo 0
End Sub
Komentar ini diminimalkan oleh moderator di situs
apakah itu akan dikirim secara otomatis melalui pos, tanpa gangguan manual?
Komentar ini diminimalkan oleh moderator di situs
Brahma yang terhormat,
Jika ingin langsung mengirim email tanpa menampilkan, silahkan ganti baris ".Display" dengan ".Send" pada kode VBA di atas.
Komentar ini diminimalkan oleh moderator di situs
Hai, saya memasang skrip yang sama tetapi tidak berfungsi, tolong bantu saya di bagian pertama

Redupkan xRg Sebagai Rentang

Sub Lembar Kerja Pribadi_Rubah (Rentang Target As ByVal)
Jika Target.Cells.Count > 1 Kemudian Keluar Sub
Setel xRg = Rentang ("D7")
Jika xRg = Target Dan Target.Nilai = 200 Maka
Hubungi Mail_small_Text_Outlook
End If

End Sub
Komentar ini diminimalkan oleh moderator di situs
kemangi yang terhormat,
Apakah ada peringatan saat menjalankan kode?
Komentar ini diminimalkan oleh moderator di situs
Halo, bagaimana Anda mengubah kode ini untuk memeriksa apakah sekelompok sel memiliki string "Tidak cocok" dan mengirim email jika ada.
Komentar ini diminimalkan oleh moderator di situs
Jose yang terhormat,
Silakan coba di bawah kode VBA. Saat menjalankan kode, kotak dialog muncul, pilih rentang yang akan Anda periksa untuk string, dan klik tombol OK. jika string tidak ada, Anda akan mendapatkan kotak dialog prompt. Jika string ada dalam rentang, email dengan penerima, subjek, dan isi yang ditentukan akan ditampilkan.

Sub KirimEmail()
Redup Aku Selamanya
Dim J Selama
Redupkan xRg Sebagai Rentang
redup xArr
Redupkan xOutApp Sebagai Objek
Redupkan xOutMail Sebagai Objek
Redupkan xMailBody Sebagai String
Redupkan xFlag Sebagai Boolean
On Error Resume Next
Set xRg = Application.InputBox("Silakan pilih rentang", "Kutools for Excel", Selection.Address, , , , , 8)
Jika xRg Bukan Apa-apa Kemudian Keluar Sub
xArr = xRg.Nilai
xFlag = Salah
Untuk I = 1 Ke UBound(xArr)
Untuk J = 1 Ke UBound(xArr, 2)
Jika xArr(I, J) = "Tidak Cocok" Maka
xFlag = Benar
End If
Next
Next
Jika xFlag Maka
Setel xOutApp = CreateObject("Outlook.Application")
Setel xOutMail = xOutApp.CreateItem(0)
xMailBody = "Halo" & vbNewLine & vbNewLine & _
"Ini adalah baris 1" & vbNewLine & _
"Ini baris 2"
Dengan xOutMail
.To = "Alamat email"
.CC = ""
.BCC = ""
.Subjek = "Cocok"
.Body = xMailBody
.Tampilkan 'atau gunakan .Kirim
Berakhir dengan
Lain
MsgBox "Tidak menemukan nilai yang cocok", vbInformation, "KuTools for Excel"
End If
End Sub
Komentar ini diminimalkan oleh moderator di situs
Bagaimana saya bisa mengubah kode ini untuk mengirim nilai siswa ke orang tua. Dimana jika kolom A adalah grade dan Kolom B adalah email induk. Saya ingin mengisi email untuk setiap siswa dengan nilai F.
Komentar ini diminimalkan oleh moderator di situs
Frank yang terhormat,
Kode VBA di bawah ini dapat membantu Anda memecahkan masalah. Terima kasih.

SubMail_small_Text_Outlook()
Redupkan xRg Sebagai Rentang
Redup Aku Selamanya
Redupkan xRows Selamanya
Redupkan xVal Sebagai String
Redupkan xOutApp Sebagai Objek
Redupkan xOutMail Sebagai Objek
Redupkan xMailBody Sebagai String
On Error Resume Next
Set xRg = Application.InputBox("Silakan pilih kolom nilai dan kolom email (dua kolom)", "Kutools for Excel", Selection.Address, , , , , 8)
Jika xRg Bukan Apa-apa Kemudian Keluar Sub
xRows = xRg.Rows.Count
Tetapkan xRg = xRg(2)
Untuk I = 1 Ke xRows
xVal = xRg.Offset(I, -1).Teks
Jika xVal = "F" Maka
Setel xOutApp = CreateObject("Outlook.Application")
Setel xOutMail = xOutApp.CreateItem(0)
xMailBody = "Halo" & vbNewLine & vbNewLine & _
"Ini adalah nilai anak Anda" & xRg.Offset(I, -1).Teks
Dengan xOutMail
.to = xRg.Offset(I, 0).Teks
.Subject = "kirim dengan tes nilai sel"
.Body = xMailBody
.Tampilkan 'atau gunakan .Kirim
Berakhir dengan
Pada Kesalahan GoTo 0
Setel xOutMail = Tidak Ada
Setel xOutApp = Tidak Ada
End If
Next
End Sub
Komentar ini diminimalkan oleh moderator di situs
Saya memiliki daftar alamat email yang sudah ada di file excel, bagaimana saya bisa mengubah kode untuk secara otomatis memilih alamat email orang tersebut jika sel D7-nya >200?
Komentar ini diminimalkan oleh moderator di situs
Selamat siang,
Kode VBA berikut dapat membantu Anda memecahkan masalah. Silakan tempatkan skrip VBA ke dalam modul lembar kerja Anda. Ketika nilai dalam sel yang ditentukan memenuhi kondisi, kotak dialog Kutools for Excel akan muncul, silakan pilih sel yang berisi alamat email penerima dan kemudian klik tombol OK. Kemudian email dengan penerima tertentu terbuka. Silakan kirim sesuai kebutuhan Anda.

Sub Lembar Kerja Pribadi_Rubah (Rentang Target As ByVal)
Jika Target.Cells.Count > 1 Kemudian Keluar Sub
Setel xRg = Rentang ("D7")
Jika xRg = Target Dan Target.Value > 200 Maka
Hubungi Mail_small_Text_Outlook
End If
End Sub
SubMail_small_Text_Outlook()
Redupkan xOutApp Sebagai Objek
Redupkan xOutMail Sebagai Objek
Redupkan xMailBody Sebagai String
Redupkan xRgMsg Sebagai Rentang
Redupkan xCell Sebagai Rentang
Set xRgMsg = Application.InputBox("Silahkan pilih sel alamat:", "Kutools for Excel", , , , , , 8)
xMailBody = "Halo" & vbNewLine & vbNewLine & _
"Ini adalah baris 1" & vbNewLine & _
"Ini baris 2"
On Error Resume Next
Untuk Setiap xCell Dalam xRgMsg
Setel xOutApp = CreateObject("Outlook.Application")
Setel xOutMail = xOutApp.CreateItem(0)
Dengan xOutMail
.Ke = xCell.Value
.CC = ""
.BCC = ""
.Subject = "kirim dengan tes nilai sel"
.Body = xMailBody
.Tampilkan 'atau gunakan .Kirim
Berakhir dengan
xOutApp = Tidak Ada
xOutMail = Tidak Ada
Next
Pada Kesalahan GoTo 0
End Sub
Komentar ini diminimalkan oleh moderator di situs
Saya mengalami kesulitan mengirim email melalui outlook. Saya menerima pesan kesalahan yang mengatakan "Sebuah program mencoba mengirim email atas nama Anda. Jika tidak terduga, tolak dan verifikasi perangkat lunak anti-virus Anda mutakhir"
Tolong bantu karena saya tidak dapat mengotomatiskannya.
Komentar ini diminimalkan oleh moderator di situs
Maaf mayank,
Kode berfungsi dengan baik dalam kasus saya. Tampaknya ada sesuatu tentang fungsi "kirim atas nama" yang dikonfigurasi di Outlook Anda. Silakan periksa.
Komentar ini diminimalkan oleh moderator di situs
Halo kode apa yang akan saya gunakan jika saya mencoba mengirim email ke manajer yang memiliki daftar buah yang memiliki kuantitas > 200 sebulan sekali (berdasarkan contoh Anda) atau segera kedaluwarsa (berdasarkan tanggal)
Komentar ini diminimalkan oleh moderator di situs
Good Day
Mungkin metode dalam artikel ini "Bagaimana cara mengirim email jika tanggal jatuh tempo telah terpenuhi di Excel?" bisa membantumu.
Silakan ikuti tautan ini: https://www.extendoffice.com/documents/excel/4664-excel-send-email-if-due-date-has-been-met.html
Komentar ini diminimalkan oleh moderator di situs
Bagaimana saya bisa mengedit kode untuk mengirim email berdasarkan tanggal di sel. Misalnya, saya memerlukan dokumen yang ditinjau setiap 15 bulan dan saya ingin mengirim email pada 12 bulan ke alamat email yang mengatakan bahwa dokumen tersebut perlu ditinjau. Saya memilikinya sekarang untuk mengirim email secara otomatis dengan mengubah .Display menjadi .Send dan berfungsi dengan baik seperti yang tertulis, tetapi apa yang perlu saya ubah untuk menggunakan fungsi tanggal alih-alih bilangan bulat??
Komentar ini diminimalkan oleh moderator di situs
Bagaimana Anda bisa menambahkan Beberapa Rentang ke "Set xRg = Range("D7")". Saya ingin mengeditnya dan menambahkan Range("D7:F7"). Namun saya mendapatkan kesalahan Run Time Error 13, Type Mismatch dan itu membawa saya ke If xRg = Target And Target.Value > 2 Then.


Bagaimana saya bisa memecahkan masalah ini?
Komentar ini diminimalkan oleh moderator di situs
Selamat siang,
Silakan coba kode VBA di bawah ini untuk menyelesaikan masalah.

Sub Lembar Kerja Pribadi_Rubah (Rentang Target As ByVal)
Jika Target.Cells.Count > 1 Kemudian Keluar Sub
If (Not Intersect(Target, Range("D7:F7")) Tidak Ada) Dan (Target.Value > 200) Kemudian
Hubungi Mail_small_Text_Outlook
End If
End Sub
SubMail_small_Text_Outlook()
Redupkan xOutApp Sebagai Objek
Redupkan xOutMail Sebagai Objek
Redupkan xMailBody Sebagai String
Setel xOutApp = CreateObject("Outlook.Application")
Setel xOutMail = xOutApp.CreateItem(0)
xMailBody = "Halo" & vbNewLine & vbNewLine & _
"Ini adalah baris 1" & vbNewLine & _
"Ini baris 2"
On Error Resume Next
Dengan xOutMail
.To = "Alamat email penerima Anda"
.CC = ""
.BCC = ""
.Subject = "kirim dengan tes nilai sel"
.Body = xMailBody
.Tampilkan 'atau gunakan .Kirim
Berakhir dengan
Pada Kesalahan GoTo 0
Setel xOutMail = Tidak Ada
Setel xOutApp = Tidak Ada
End Sub
Komentar ini diminimalkan oleh moderator di situs
bekerja dengan baik.. Terima kasih.. :) :)
Komentar ini diminimalkan oleh moderator di situs
Itu tidak berfungsi untuk saya karena nilai di D7 adalah hasil dari formal. Bagaimana jika sel D7 berisi rumus, misalnya D7 =2*120? Itu masih memenuhi kondisi tetapi tidak ada yang terjadi. Tolong bantu
Komentar ini diminimalkan oleh moderator di situs
bagaimana cara menghentikan kode agar tidak berjalan yaitu jangan meminta email ketika kondisinya tidak terpenuhi?

bahkan ketika D7 < 200, saya masih dimintai email.
Komentar ini diminimalkan oleh moderator di situs
Selamat siang,
Kode diperbarui di pos dengan masalah terpecahkan. Terima kasih atas komentarmu.
Komentar ini diminimalkan oleh moderator di situs
Hi

Terima kasih banyak telah memposting Kode dan instruksi VBA ini. Ketika saya menemukannya, saya merasa seperti saya telah memenangkan lotre. Namun saya terjebak pada sesuatu jadi saya harap Anda dapat membantu (saya baru mengenal VBA, hanya memiliki pemahaman yang sangat mendasar).

Saya telah menyalin kode dan mengubah sel dan nilai sel untuk memilih dari rentang jika kriteria terpenuhi. Saya telah mencoba dan menguji dan berhasil dan saya menerima email ke pandangan berdasarkan kriteria.

1) Namun, sepertinya saya tidak dapat menemukan cara agar kode VBA berjalan secara otomatis ketika saya membuka lembar kerja excel, daripada harus mengklik aplikasi VBA dan memilih jalankan. Bisakah Anda memberi tahu jika ada prompt tambahan untuk mengetikkan kode VBA di atas yang akan melakukan ini atau harus dilakukan secara terpisah.

2) Juga apakah ada cara untuk mendapatkan kode VBA untuk mengirim email ke seseorang jika tanggal jatuh tempo adalah ya untuk item tertentu seperti yang ditunjukkan pada contoh di bawah ini.
kolom tersembunyi email
Nama

Prosedur
Prosedur no.1 tanggal jatuh tempo ya
Prosedur tidak. 2 tanggal jatuh tempo tidak

Saya akan memiliki banyak orang di spreadsheet (melintas secara horizontal dalam satu baris) dan 'Ya' dapat disorot untuk berbagai prosedur yang terlambat (terdaftar secara vertikal di kolom A. Apakah ada cara untuk membuat kode VBA yang berjalan untuk sesuatu seperti ini - jika 'Ya' untuk 'Orang 1', maka email 'orang 1' dengan 'no prosedur #' (atau nomor) dan tanggal jatuh tempo.Dapat mencantumkan dalam email semua prosedur dan tanggal jatuh tempo berikutnya.

Saya tidak keberatan jika saya harus menetapkan kode VBA terpisah untuk setiap orang selama kode tersebut mengirim surat yang berisi semua dokumen yang telah jatuh tempo untuk orang tersebut dan tanggal jatuh temponya.

Semoga bisa membantu
Komentar ini diminimalkan oleh moderator di situs
Yth. Ann,
Silakan coba kode VBA di bawah ini. Terima kasih atas komentarmu.

SubMail_small_Text_Outlook()
Redupkan xRg Sebagai Rentang
Redupkan xCell Sebagai Rentang
Redup Aku Selamanya
Redupkan xRows Selamanya
Redupkan xCols Selamanya
Redupkan xVal Sebagai String
Redupkan xOutApp Sebagai Objek
Redupkan xOutMail Sebagai Objek
Redupkan xMailBody Sebagai String
On Error Resume Next
Set xRg = Application.InputBox("Pilih rentang berisi nilai sel yang akan Anda kirimi email berdasarkan:", "Kutools for Excel", Selection.Address, , , , , 8)
Jika xRg Bukan Apa-apa Kemudian Keluar Sub
xRows = xRg.Rows.Count
xCols = xRg.Columns.Count
Untuk I = 1 Ke xRows
Tetapkan xCell = xRg(I, xCols)
Jika xCell.Value = "Ya" Maka
Setel xOutApp = CreateObject("Outlook.Application")
Setel xOutMail = xOutApp.CreateItem(0)
xMailBody = "Halo" & vbNewLine & vbNewLine & _
"Ini adalah informasi Anda: " & vbNewLine & xCell.Offset(0, -1).Teks & vbNewLine & xCell.Offset(0, -2).Teks
Dengan xOutMail
.Ke = xCell.Offset(0, -4).Teks
.Subject = "kirim dengan tes nilai sel"
.Body = xMailBody
.Tampilkan 'atau gunakan .Kirim
Berakhir dengan
Pada Kesalahan GoTo 0
Setel xOutMail = Tidak Ada
Setel xOutApp = Tidak Ada
End If
Next
End Sub
Komentar ini diminimalkan oleh moderator di situs
Kristal,

Ini menggantikan kode berikut:

subemail()

Redupkan xRg Sebagai Rentang

Redupkan xRgEach Sebagai Rentang

Redupkan xEmail_Subject, xEmail_Send_Form,;dll.
Komentar ini diminimalkan oleh moderator di situs
Di mana tepatnya kita memasukkan kode ini?
Komentar ini diminimalkan oleh moderator di situs
Hari baik,
Anda perlu menempatkan kode ke dalam jendela kode lembar kerja.
Buka jendela Microsoft Visual Basic for Applications, klik dua kali nama lembar di panel kiri untuk membuka editor kode.
Komentar ini diminimalkan oleh moderator di situs
Halo,


Saat ini saya mengalami sedikit masalah dengan pengkodean ini (baru dalam hal ini - mungkin telah menggigit lebih dari yang bisa saya kunyah)


Saat ini saya memiliki spreadsheet dengan yang berikut ini yang saya perlukan bantuan untuk mengotomatisasi dan mengirim email untuk kesalahan yang ada di properti kami untuk bisnis kami


Saat ini saya membutuhkan kode yang akan menggunakan data berikut:


1) Alamat dan masalah (2 sel "umum" yang telah digabungkan melalui ((Dalam sel D1)) " = =CONCAT(B1," "C1,) "
Alamat di B1 akan selalu sama (kurang lebih)
Sedangkan C1 akan selalu berubah-ubah tergantung pada kesalahan pada properti.


2) Email yang akan dikirim dengan alamat email yang sama, (bisakah saya menggunakan $E$1 atau saya harus menggunakan E1 - E1 . misalnya) atau dapatkah saya memasukkan "TheEmailAdress@.co.uk" di baris kode


3) Badan email yang akan diisi dengan cara yang mirip dengan poin 1) ...... ((Dalam sel F1)) " =CONCAT(G1," ",H1)
Ini akan berubah terus-menerus karena mereka mewakili perusahaan (G1) dan apa yang mereka lakukan, memperbaiki, mengutip dll (H1)

4) Pemicu untuk mengirim email, saya akan menjadi nomor 7, lembaran itu diperbarui setiap hari (7 hari dalam seminggu)
karena itu saya memerlukan pemicu untuk mengirim email pada hari ke 7, tetapi tidak terus-menerus seperti pada hari ke 8, 9, 10+ dll. dan tidak sebelumnya seperti 1-6, ini akan menjadi A4 : A 100+ (karena kami terus berkembang


4) Saya telah menggunakan cuplikan kecil dari pengguna lain yang menyebutkan tentang menggunakan daftar pemicu untuk mengirim email, tetapi tidak yakin 100% itu benar, tetapi saya memerlukannya untuk memindai semua Collum A... .A4: A100
dan jika ada 47 sel yang hanya berisi " 7 " maka 47 Email akan terkirim


Terima kasih banyak telah membaca dan saya harap Anda dapat membantu :)
Komentar ini diminimalkan oleh moderator di situs
martin yang terhormat,
Maaf tidak bisa membantu dengan ini.
Anda dapat memposting pertanyaan Anda di forum kami: https://www.extendoffice.com/forum.html untuk mendapatkan lebih banyak dukungan Excel dari staf teknis kami.
Terima kasih atas komentar anda

Salam Hormat,
Kristal
Komentar ini diminimalkan oleh moderator di situs
Hai,


Bagaimana jika saya ingin mengirim email berdasarkan kata "selesai" yang ditambahkan ke kolom L?
Komentar ini diminimalkan oleh moderator di situs
Jesse yang terhormat,
Kode VBA berikut dapat membantu Anda memecahkan masalah. Terima kasih atas komentarmu.

Sub Lembar Kerja Pribadi_Rubah (Rentang Target As ByVal)
Jika Target.Cells.Count > 1 Kemudian Keluar Sub
If (Tidak Berpotongan(Target, Rentang("L:L")) Tidak Ada) Dan (Target.Nilai = "selesai") Kemudian
Hubungi Mail_small_Text_Outlook
End If
End Sub
SubMail_small_Text_Outlook()
Redupkan xOutApp Sebagai Objek
Redupkan xOutMail Sebagai Objek
Redupkan xMailBody Sebagai String
Setel xOutApp = CreateObject("Outlook.Application")
Setel xOutMail = xOutApp.CreateItem(0)
xMailBody = "Halo" & vbNewLine & vbNewLine & _
"Ini adalah baris 1" & vbNewLine & _
"Ini baris 2"
On Error Resume Next
Dengan xOutMail
.To = "Alamat email penerima Anda"
.CC = ""
.BCC = ""
.Subject = "kirim dengan tes nilai sel"
.Body = xMailBody
.Tampilkan 'atau gunakan .Kirim
Berakhir dengan
Pada Kesalahan GoTo 0
Setel xOutMail = Tidak Ada
Setel xOutApp = Tidak Ada
End Sub
Komentar ini diminimalkan oleh moderator di situs
Hai,
Saya ingin Outlook muncul hanya ketika data yang saya tempel ke Rentang ("D7:F7") memiliki setidaknya 1 nol atau kosong.
Saya telah menghapus baris 'If Target.Cells.Count > 1 Then Exit Sub' dan sekarang Outlook selalu diluncurkan saat saya menempelkan grup nilai apa pun ke dalam sel D7:F7.

Bantuan
Komentar ini diminimalkan oleh moderator di situs
Jan sayang,
Skrip berikut dapat membantu Anda memecahkan masalah. Terima kasih atas komentarmu.

Sub Lembar Kerja Pribadi_Rubah (Rentang Target As ByVal)
Redupkan xOutApp Sebagai Objek
Redupkan xOutMail Sebagai Objek
Redupkan xMailBody Sebagai String
On Error Resume Next
Jika Target.Address = Range("D7:F7").Address Then
Dengan Application.WorksheetFunction
Jika .CountIf(Target, "") > 0 Atau .CountIf(Target, 0) > 0 Kemudian
Setel xOutApp = CreateObject("Outlook.Application")
Setel xOutMail = xOutApp.CreateItem(0)
Dengan xOutMail
.To = "Alamat Email"
.CC = ""
.BCC = ""
.Subject = "kirim dengan tes nilai sel"
.Body = "Halo"
.Tampilkan 'atau gunakan .Kirim
Berakhir dengan
Pada Kesalahan GoTo 0
Setel xOutMail = Tidak Ada
Setel xOutApp = Tidak Ada
End If
Berakhir dengan
End If
End Sub
Komentar ini diminimalkan oleh moderator di situs
Jadi saya menggunakan hasil edit Anda untuk memasukkan rentang sel tetapi (jika kita menggunakan contoh lembar kerja) saya bertanya-tanya bagaimana cara menambahkan jenis buah, Tanggal, dan jumlahnya ke dalam email HTML dari lembar kerja jika sesuai dengan kriteria memiliki email yang dihasilkan. Jadi itu akan mengatakan

"Hai, yang di sana,"

Nama buah dari sel "Perlu diurutkan kembali karena pada tanggal pemesanan: " tanggal pemesanan dari sel "kami memiliki jumlah ini:" jumlah dari sel.
Komentar ini diminimalkan oleh moderator di situs
Hai Noemi,
Silakan coba skrip VBA ini.

Sub Lembar Kerja Pribadi_Rubah (Rentang Target As ByVal)
Redupkan xRg Sebagai Rentang
Dim I, J, K Selamanya
Redupkan xOutApp Sebagai Objek
Redupkan xOutMail Sebagai Objek
Redupkan xMailBody Sebagai String
On Error Resume Next
Jika Target.Address = Range("D7").Address Then
Dengan Application.WorksheetFunction
Jika IsNumeric(Target.Value) Dan Target.Value > 200 Maka
Set xRg = Application.InputBox("Silakan pilih rentang sel yang akan Anda tampilkan di badan surat:", "KuTools for Excel", Selection.Address, , , , , 8)
Jika xRg Bukan Apa-apa Kemudian Keluar Sub
Untuk I = 1 Ke xRg.Rows.Count
Untuk J = 1 Ke xRg.Rows(I).Columns.Count
Untuk K = 1 Ke xRg.Baris(I).Kolom(J).Hitung
xMailBody = xMailBody & " " & xRg.Rows(I).Columns(J).Cells(K).Text
Next
Next
xMailBody = xMailBody & vbNewLine
Next
Setel xOutApp = CreateObject("Outlook.Application")
Setel xOutMail = xOutApp.CreateItem(0)
Dengan xOutMail
.To = "Alamat Email"
.CC = ""
.BCC = ""
.Subject = "kirim dengan tes nilai sel"
.Body = "Hai di sana" & vbNewLine & xMailBody
.Tampilkan 'atau gunakan .Kirim
Berakhir dengan
Pada Kesalahan GoTo 0
Setel xOutMail = Tidak Ada
Setel xOutApp = Tidak Ada
End If
Berakhir dengan
End If
End Sub
Komentar ini diminimalkan oleh moderator di situs
hai kristal
terima kasih atas kode Anda, jika memungkinkan, kirimkan kode untuk detail yang diberikan di bawah ini

jika kami memiliki 8 hingga 9 kolom menggunakan berbagai jenis kedaluwarsa seperti tanggal kedaluwarsa paspor, tanggal kedaluwarsa SIM, tanggal kedaluwarsa STNK, tanggal kedaluwarsa gate pass dan banyak lagi dll., dan peringatan surat harus dikirim hanya ke 5 orang yang diberikan.

seperti lembar tanggal kami dengan lebih dari 300 karyawan, tanggal kedaluwarsa dan kedaluwarsa dengan dalam 15 hari dalam warna merah dan peringatan email harus dikirim.

Mohon melakukan yg diperlukan

terima kasih sebelumnya
Komentar ini diminimalkan oleh moderator di situs
Halo,
Kami telah memposting artikel "Bagaimana cara mengirim email jika tanggal jatuh tempo telah terpenuhi di Excel?"
Anda dapat melihat apakah ada jawaban di artikel ini. Silakan ikuti tautan ini untuk membuka artikel: https://www.extendoffice.com/documents/excel/4664-excel-send-email-if-due-date-has-been-met.html
Terima kasih.
Komentar ini diminimalkan oleh moderator di situs
Halo- Jika saya ingin mengirim ke email dari daftar alih-alih memasukkan alamat email asli ke dalam kode, apakah itu mungkin? terima kasih
Komentar ini diminimalkan oleh moderator di situs
Halo,
Silakan coba kode VBA di bawah ini, ketika sel yang ditentukan memenuhi kondisi, dialog akan muncul, silakan pilih sel yang berisi alamat email yang akan Anda kirimi email. Semoga bisa membantu. Terima kasih.

Sub Lembar Kerja Pribadi_Rubah (Rentang Target As ByVal)
Jika Target.Cells.Count > 1 Kemudian Keluar Sub
Setel xRg = Rentang ("D7")
Jika xRg = Target Dan Target.Value > 200 Maka
Hubungi Mail_small_Text_Outlook
End If
End Sub
SubMail_small_Text_Outlook()
Redupkan xOutApp Sebagai Objek
Redupkan xOutMail Sebagai Objek
Redupkan xMailBody Sebagai String
Redupkan xRgMsg Sebagai Rentang
Redupkan xCell Sebagai Rentang
Set xRgMsg = Application.InputBox("Silahkan pilih sel alamat:", "Kutools for Excel", , , , , , 8)
xMailBody = "Halo" & vbNewLine & vbNewLine & _
"Ini adalah baris 1" & vbNewLine & _
"Ini baris 2"
On Error Resume Next
Untuk Setiap xCell Dalam xRgMsg
Setel xOutApp = CreateObject("Outlook.Application")
Setel xOutMail = xOutApp.CreateItem(0)
Dengan xOutMail
.Ke = xCell.Value
.CC = ""
.BCC = ""
.Subject = "kirim dengan tes nilai sel"
.Body = xMailBody
.Tampilkan 'atau gunakan .Kirim
Berakhir dengan
xOutApp = Tidak Ada
xOutMail = Tidak Ada
Next
Pada Kesalahan GoTo 0
End Sub
Belum ada komentar yang diposting di sini
Muat Lebih
Tinggalkan komentar anda
Posting sebagai Tamu
×
Beri peringkat pos ini:
0   Karakter
Lokasi yang Disarankan