Cuprins
Acest tutorial va ilustra cum să folosim macro Excel pentru a trimite automat un e-mail. Putem configura funcția de corespondență folosind VBA Deci, folosind macroul VBA macro putem trimite un e-mail la mai mulți utilizatori în același timp. Trebuie să avem Outlook instalat pe dispozitivul nostru pentru a trimite automat e-mailuri cu ajutorul unei macro. Deoarece codul pe care îl vom insera va utiliza Outlook pentru a trimite e-mailuri către destinatari.
Descărcați caietul de practică
Puteți descărca caietul de practică de aici.
Trimiteți e-mail automat.xlsm3 Exemple adecvate de macro Excel pentru a trimite e-mail automat
Pe parcursul acestui articol, vom demonstra 3 exemple adecvate de utilizare a macroului Excel pentru a trimite automat un e-mail către destinatari. Înainte de a începe să ilustrăm exemplul, trebuie să reparăm un lucru în foaia noastră Excel. Completați pașii de mai jos înainte de a aplica macroul pentru a trimite automat un e-mail.
ETAPE:
- În primul rând, din setul de date, accesați fila Dezvoltator Selectați opțiunea Visual Basic .
- În continuare, mergeți la Instrument și selectați opțiunea Referințe .
- O nouă casetă de dialog numită Referințe - VBAProject ' se va deschide.
- În cele din urmă, bifați opțiunea Biblioteca de obiecte Microsoft Office 16.0 ' și faceți clic pe OK .
1. Aplicați Macro Excel VBA pentru a trimite e-mail automat pe baza valorii celulei
În primul rând, vom aplica sistemul excel VBA pentru a trimite automat un e-mail pe baza unei anumite valori de celulă din setul nostru de date. Pentru a ilustra acest exemplu, vom folosi următorul set de date. Vom scrie un cod care va trimite automat un e-mail dacă valoarea din celula D6 este mai mare decât 400 .
Să vedem care sunt pașii pentru a efectua această acțiune.
ETAPE:
- Pentru început, dreapta - click pe foaia ' Pe baza celulei '.
- În plus, selectați opțiunea Vezi codul '.
- Acțiunea de mai sus va deschide o fereastră goală VBA fereastra de cod pentru acea foaie de lucru. O altă modalitate de a deschide acea fereastră de cod este să apăsați Alt + F11 .
- În plus, introduceți următorul cod în fereastra de cod:
Dim rg As Range Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Target.Cells.Count> 1 Then Exit Sub Set rg = Intersect(Range("D6"), Target) If rg Is Nothing Then Exit Sub If IsNumeric(Target.Value) And Target.Value> 400 Then Call send_mail_outlook End If End If End Sub send_mail_outlook() Dim z As Object Dim y As Object Dim b As String Set z =CreateObject("Outlook.Application") Set y = z.CreateItem(0) b = "Bună ziua!" & vbNewLine & vbNewLine & _ "Sperăm că sunteți bine" & vbNewLine & _ "Vizitați site-ul nostru Exceldemy" On Error Resume Next With y .To = "Adresă" .cc = "" .BCC = "" .Subject = "trimite mail pe baza valorii celulei" .Body = b .Display End With On Error GoTo 0 Set y = Nimic Set z = Nimic End Sub
- Apoi, faceți clic pe butonul Rulați sau apăsați butonul F5 pentru a rula codul.
- O nouă casetă de dialog numită Macros va apărea.
- După aceea, în Denumire macro câmpul selectați macro trimite_mail_outlook '.
- Acum faceți clic pe Rulați buton.
- În cele din urmă, de acum înainte, când valoarea celulei din celula D6> 400 un e-mail în Outlook se va genera automat cu anumiți destinatari. Trebuie doar să dăm click pe butonul Trimiteți pentru a trimite e-mailul.
Citește mai mult: Trimiteți automat e-mailuri din Excel pe baza conținutului celulelor (2 metode)
2. Trimiterea automată a e-mailurilor pe baza datei de scadență cu ajutorul macro VBA
În cea de-a doua metodă, vom folosi Excel VBA macro pentru a trimite automat un e-mail în cazul în care data scadentă a oricărui proiect este aproape. Acesta este un fel de memento. Pentru a ilustra acest exemplu, folosim următorul set de date. Setul de date conține e-mailuri ale diferiților vânzători, mesaje și data scadentă a proiectului lor.
Urmați pașii de mai jos pentru a efectua această metodă.
ETAPE:
- Mai întâi, faceți clic dreapta pe foaie Data .
- În continuare, selectați opțiunea ' Vezi codul '.
- Se deschide o fereastră goală VBA fereastra de cod pentru foaia de lucru activă. De asemenea, putem apăsa pe Alt + F11 pentru a obține acea fereastră de cod.
- Apoi, introduceți următorul cod în fereastra de cod:
Public Sub Based_on_Date() Dim aRgDate As Range Dim aRgSend As Range Dim aRgText As Range Dim aRgDone As Range Dim aOutApp As Object Dim aMailItem As Object Dim aLastRow As Long Dim CrLf As String Dim aMailBody As String Dim zRgDateVal As String Dim zRgSendVal As String Dim aMailSubject As String Dim j As Long On Error Resume Next Set aRgDate = Application.InputBox("select the column of duedata:", _ "Trimite e-mail în funcție de dată", , , , , , , , 8) If aRgDate Is Nothing Then Exit Sub Set aRgSend = Application.InputBox("selectează coloana destinatarilor e-mailului:", _ "Trimite e-mail în funcție de dată", , , , , , 8) If aRgSend Is Nothing Then Exit Sub Set aRgText = Application.InputBox("selectează coloana de conținut a e-mailului:", _ "Trimite e-mail în funcție de dată", , , , , , , 8) If aRgText Is Nothing Then Exit Sub aLastRow =aRgDate.Rows.Count Set aRgDate = aRgDate(1) Set aRgSend = aRgSend(1) Set aRgText = aRgText(1) Set aOutApp = CreateObject("Outlook.Application") For j = 1 To aLastRow zRgDateVal = "" zRgDateVal = aRgDate.Offset(j - 1).Value If zRgDateVal "" Then If CDate(zRgDateVal) - Date 0 Then zRgSendVal = aRgSend.Offset(j - 1).Value aMailSubject = aRgText.Offset(j - 1).Value & " on " & zRgDateVal CrLf= "
" aMailBody = "" aMailBody = aMailBody & "Hello " & zRgSendVal & CrLf aMailBody = aMailBody & "Message: " & aRgText.Offset(j - 1).Value & CrLf aMailBody = aMailBody & "" Set aMailItem = aOutApp.CreateItem(0) With aMailItem .Subject = aMailSubject .To = zRgSendVal .HTMLBody = aMailBody .Display End With Set aMailItem = Nothing End If End If End If Next Set aOutApp = Nothing EndSub
- Acum, utilizați Rulați sau butonul F5 pentru a rula codul.
- Se va deschide o nouă casetă de dialog.
- Ulterior, în câmpul de introducere din caseta de dialog respectivă, selectați intervalul de coloane cu data scadentă D$5:$D$9 Apoi, faceți clic pe OK .
- Se va mai deschide o casetă de dialog.
- În plus, în câmpul de introducere selectați intervalul de coloane B$5:$B$9 care conține adresele de e-mail și faceți clic pe OK .
- În plus, se va mai deschide o fereastră. Selectați intervalul de mesaje $C$5:$C$9 în câmpul de introducere a ferestrei pop.
- În final, putem vedea rezultate precum cele din imaginea următoare. Obținem 3 e-mailuri care sunt create automat în 3 diferite ferestre de Outlook Acest lucru nu va crea e-mailuri pentru primele două adrese de e-mail, deoarece data de predare a acestor două proiecte a expirat.
Citește mai mult: Cum să trimiteți automat e-mailuri din Excel pe baza datei
Lecturi similare
- [Rezolvat]: Share Workbook nu se afișează în Excel (cu pași simpli)
- Cum să trimiteți e-mailuri din lista Excel (2 moduri eficiente)
- Cum să trimiteți o foaie de calcul Excel editabilă prin e-mail (3 metode rapide)
- Macro pentru a trimite e-mailuri din Excel (5 exemple adecvate)
- Macro pentru a trimite un e-mail din Excel cu corp (3 cazuri utile)
3. Folosiți Macro Excel pentru a trimite automat e-mailuri cu atașamente
În ultimul exemplu, vom vedea cum putem dezvolta o macro Excel pentru a trimite automat un e-mail cu atașamente. Să presupunem că avem un atașament în imaginea următoare. Vrem să trimitem acest atașament printr-un e-mail folosind Excel VBA Pentru a face acest lucru avem nevoie de calea acestui fișier Excel. Iată pașii pentru aceasta:
- Selectați fișierul ' Anexă.xlsx ' '.
- Faceți clic pe opțiunea ' Calea de copiere '.
- Deci, calea fișierului pe care îl primim:
Vom insera această cale în codul nostru macro pentru a trimite acest fișier prin e-mail. Urmați pașii de mai jos pentru a face acest lucru.
ETAPE:
- În primul rând, mergeți la Dezvoltator și selectați opțiunea Visual Basic .
- O nouă fereastră numită Proiect - se va deschide VBAProject '.
- În al doilea rând, faceți clic dreapta pe pe numele foii.
- Apoi, selectați Introduceți > Modul .
- Comanda de mai sus va deschide o fereastră goală VBA
- În al treilea rând, introduceți următorul cod în modulul respectiv:
Sub send_Email_complete() Dim MyOutlook As Object Set MyOutlook = CreateObject("Outlook.Application") Dim MyMail As Object Set MyMail = MyOutlook.CreateItem(olMailItem) MyMail.To = "[email protected]" MyMail.cc = "[email protected]" MyMail.BCC = "[email protected]" MyMail.Subject = "Trimitere e-mail cu VBA." MyMail.Body = "Acesta este un e-mail de probă." Attached_File = "E:\Exceldemy\Attachment.xlsx"MyMail.Attachments.Add Attached_File MyMail.send End Sub
- Apoi, apăsați butonul F5 sau faceți clic pe tasta Rulați pentru a rula codul.
- În cele din urmă, codul va trimite atașamentul la e-mailurile furnizate în cod. Codul trimite e-mailurile prin Outlook Deci, faceți clic pe Permiteți pentru a permite Outlook trimite atașamentul la e-mailurile date.
Citește mai mult: Cum să aplicați macro pentru a trimite e-mailuri din Excel cu atașament
Concluzie
În concluzie, acest articol arată 3 exemple de utilizare a excel VBA macro pentru a trimite automat corespondența. Descărcați exemplul de foaie de lucru oferit în acest articol pentru a vă pune la încercare abilitățile. Dacă aveți întrebări, vă rugăm să lăsați un comentariu în caseta de mai jos. Echipa noastră va încerca să vă răspundă la mesaj în cel mai scurt timp posibil. Fiți cu ochii în patru pentru mai multe inventive Microsoft Excel soluții în viitor.