Cum se automatizează Merge Mail prin VBA în Microsoft Excel

Anonim

În acest articol, vom învăța cum să automatizăm îmbinarea corespondenței utilizând VBA în Microsoft Excel.

E-mail Merge: - Aceasta este sursa pentru a îmbina informațiile datelor în text și apoi pentru a imprima documentul. Pentru a efectua o astfel de operație, folosim Microsoft Word.

Să înțelegem cu un exercițiu simplu: -

Avem un format de scrisoare în foaia de raport și dorim să aplicăm îmbinarea corespondenței prin VBA în care dorim să schimbăm și detaliile scrisorii.

Avem 2 foi. O foaie conține date cu detalii cărora vrem să le dăm scrisori. În primele date, coloana A conține nume, coloana B conține adresa străzii, coloana C conține oraș, regiunea coloanei D, iar coloana E și coloana F conțin cod poștal. Există un buton de comandă pentru a muta în foaia de raport.

2nd foaia are formatul de literă cu 2 butoane de comandă; un buton pentru a vă deplasa pe foaia de date și al doilea buton de comandă este să funcționeze pentru îmbinarea corespondenței

În primul rând, vom scrie codul VBA pentru butonul de comandă al datelor principale. Trebuie să urmăm pașii de mai jos: -

  • Mai întâi vom insera butonul de comandă în foaia de lucru.
  • Accesați fila Dezvoltator și apoi introduceți butonul Comandă din Activexcontrol.
  • Redenumiți butonul de comandă cu numele „Letter” și atribuiți acum macro-ul menționat mai jos: -

Private Sub Main_data_Click ()

Fișe de lucru („Raportați”). Activați

Gama ("A19"). Afișați

Sfârșitul Sub

Acum, vom introduce al doilea buton de comandă în foaia Raport și vom atribui macro-ul să se deplaseze pe prima foaie. Trebuie să urmăm pașii de mai jos: -

  • Redenumiți butonul de comandă cu numele „Date” și atribuiți macro-ul menționat mai jos: -

Private Sub CommandButton2_Click ()

Fișe de lucru („Main_Data”). Activați

Gama („A1”). Afișați

Sfârșitul Sub

Acum vom scrie codul principal pentru îmbinarea corespondenței urmând pașii de mai jos: -

Introduceți butonul de comandă și redenumiți-l ca „Letter Print”, apoi atribuiți codul menționat mai jos: -

Private Sub CommandButton1_Click ()

Dim Startrow As Integer, lastrow As Integer

Dim MsgAs String

Dim TotalrecordsAs String

Denumire as String, Street_AddressAs String, oraș As String, regiune As String, țară As String, poștală As String

Totalrecords = "= counta (Main_Data! A: A)"

Gama ("L1") = Totalrecords

Dim mydate as Date

Setați WRP = Foi de calcul („Raportați”)

mydate = Data
WRP.Range ("A9") = data mea

WRP.Range ("A9"). NumberFormat = "[$ -F800] dddd, mmmm, dd, aaaa"

WRP.Range ("A9"). HorizontalAlignment = xlLeft

Startrow = InputBox („Introduceți prima înregistrare de imprimat.”)

lastrow = InputBox ("Introduceți ultima înregistrare de imprimat.")

Dacă Startrow> lastrow, atunci

Msg = "EROARE" & vbCrLf & "Rândul inițial trebuie să fie mai mic decât ultimul rând"

Msgbox Msg, vbCritical, "ExcelTip"

End If

Pentru i = Startrow To lastrow

nume = Foi de calcul („Date_principale”). Celule (i, 1)

Street_Address = Sheets ("Main_data"). Celule (i, 2)

city ​​= Sheets („Main_data”). Celule (i, 3)

regiune = Foi de calcul („Date_principale”). Celule (i, 4)

country = Sheets („Main_data”). Celule (i, 5)

postal = Foi de calcul („Date_principale”). Celule (i, 6)

Foi de calcul („Raport”). Interval („A7”) = nume & vbCrLf & Street_Address & vbCrLf & oraș & regiune & țară & vbCrLf & postal

Foi de calcul („Raport”). Range („A11”) = „Dragă” & „„ & nume & „,„

CheckBox1 = Adevărat

Dacă CheckBox1 atunci

ActiveSheet.PrintPreview

Altfel

ActiveSheet.PrintOut

End If

Apoi eu

Sfârșitul Sub

Explicare cod: - Mai întâi, vom defini variabilele, apoi vom defini data și formatul datei, apoi vom defini ultimul rând și rândul de început. Apoi am creat o cutie de mesaje pentru transmiterea mesajului. Apoi vom defini datele și intervalul pe care dorim să le captăm în litere.

  • Pentru a rula codul, apăsați tasta F5 de pe tastatură.
  • Apoi trebuie să introduceți primul punct de înregistrare. După aceea, veți primi o nouă casetă de mesaj pentru a introduce ultima înregistrare a punctului.

  • Apoi veți obține documentul de mai jos

  • Scrisoarea va fi actualizată în conformitate cu detaliile menționate în datele principale.

Acesta este modul în care putem automatiza îmbinarea corespondenței prin VBA în Microsoft Excel.