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.