Sådan automatiseres mailfletning via VBA i Microsoft Excel

Anonim

I denne artikel vil vi lære at automatisere mailfletningen ved hjælp af VBA i Microsoft Excel.

Mail Merge: - Dette er kilden til at flette dataens oplysninger til tekst og derefter udskrive dokumentet. For at udføre en sådan operation bruger vi Microsoft Word.

Lad os forstå med en simpel øvelse:-

Vi har et brevformat i rapportarket, og vi vil anvende fletning af mail via VBA, hvor vi også vil ændre brevedetaljerne.

Vi har 2 ark. 1 ark indeholder data med detaljer til hvem vi vil give breve. I de første data indeholder kolonne A navn, kolonne B indeholder gadeadresse, kolonne C indeholder by, kolonne D -region, og kolonne E og kolonne F indeholder postnummer. Der er en kommandoknap, der skal flyttes i rapportarket.

2nd ark har bogstavformatet med 2 kommandoknapper; en knap for at flytte på databladet og den anden kommandoknap er at arbejde for mailfletning

For det første skriver vi VBA -koden til kommandoknappen for Hoveddata. Vi skal følge nedenstående givne trin:-

  • Først vil vi indsætte kommandoknappen i regnearket.
  • Gå til fanen Udvikler, og indsæt derefter kommandoknappen fra Activexcontrol.
  • Omdøb kommandoknappen med navnet "Letter", og tildel nu den nævnte makro:-

Privat under Main_data_Click ()

Regneark ("Rapport"). Aktiver

Område ("A19"). Vis

Afslut Sub

Nu indsætter vi den anden kommandoknap i rapportarket og tildeler makroen til at flytte på det første ark. Vi skal følge nedenstående givne trin:-

  • Omdøb kommandoknappen med navnet "Data", og tildel nedenstående makro:-

Privat underkommandoButton2_Click ()

Regneark ("Main_Data"). Aktiver

Område ("A1"). Vis

Afslut Sub

Nu skriver vi hovedkoden til mailfletning ved at følge nedenstående givne trin:-

Indsæt kommandoknappen, og omdøb den til "Letter Print", og tildel derefter nedenstående kode:-

Privat underkommandoButton1_Click ()

Dim Startrow Som heltal, lastrow som heltal

Dim MsgAs streng

Dim TotalrecordsAs String

Dim navn As String, Street_AddressAs String, city As String, region As String, country As String, postal As String

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

Område ("L1") = Totalregistre

Dim mydate As Date

Angiv WRP = Sheets ("Rapport")

mydate = Dato
WRP.Range ("A9") = mydate

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

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

Startrow = InputBox ("Indtast den første post, der skal udskrives.")

lastrow = InputBox ("Indtast den sidste post, der skal udskrives.")

Hvis Startrow> lastrow Så

Msg = "FEJL" & vbCrLf & "Startrække skal være mindre end sidste række"

Msgbox Msg, vbCritical, "ExcelTip"

Afslut Hvis

For i = Startrow Til lastrow

name = Sheets ("Main_data"). Celler (i, 1)

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

city ​​= Sheets ("Main_data"). Celler (i, 3)

region = Sheets ("Main_data"). Celler (i, 4)

country = Sheets ("Main_data"). Celler (i, 5)

postal = Sheets ("Main_data"). Celler (i, 6)

Ark ("Rapport"). Område ("A7") = navn & vbCrLf & Street_Address & vbCrLf & by & region & land & vbCrLf & post

Sheets ("Report"). Range ("A11") = "Dear" & "" & name & ","

CheckBox1 = Sandt

Hvis CheckBox1 Så

ActiveSheet.PrintPreview

Andet

ActiveSheet.PrintOut

Afslut Hvis

Næste i

Afslut Sub

Kodeforklaring: - Først definerer vi variablerne, derefter definerer vi dato- og datoformatet, derefter definerer vi den sidste række og startrække. Så har vi oprettet meddelelsesboks til overførsel af beskeden. Derefter definerer vi de data og rækkevidde, som vi vil indfange i brev.

  • For at køre koden skal du trykke på tasten F5 på tastaturet.
  • Derefter skal du indtaste det første registreringspunkt. Derefter får du en ny meddelelsesboks til indtastning af den sidste punktregistrering.

  • Og så får du nedenstående viste dokument

  • Brevet vil blive opdateret i henhold til de nævnte detaljer i hoveddata.

Dette er den måde, vi kan automatisere mailfletning via VBA i Microsoft Excel.