I den här artikeln kommer vi att lära oss hur man automatiserar e -postsammanfogningen med hjälp av VBA i Microsoft Excel.
Mail Merge: - Detta är källan för att sammanfoga dataens information till text och sedan skriva ut dokumentet. För att utföra en sådan operation använder vi Microsoft Word.
Låt oss förstå med en enkel övning:-
Vi har ett brevformat i rapportbladet och vi vill tillämpa brevfogning via VBA där vi också vill ändra brevinformationen.
Vi har 2 ark. 1 blad innehåller data med detaljer till vilka vi vill ge bokstäver. I de första uppgifterna innehåller kolumn A Namn, kolumn B innehåller gatuadress, kolumn C innehåller stad, kolumn D -region och kolumn E och kolumn F innehåller postnummer. Det finns en kommandoknapp att flytta i rapportbladet.
2nd blad har bokstavsformat med 2 kommandoknappar; en knapp för att flytta på databladet och den andra kommandoknappen är att arbeta för att slå ihop brev
Först skriver vi VBA -koden för kommandoknappen för Huvuddata. Vi måste följa nedanstående steg:-
- Först sätter vi in kommandoknappen i kalkylbladet.
- Gå till fliken Utvecklare och sätt sedan in kommandoknappen från Activexcontrol.
- Byt namn på kommandoknappen med namnet "Letter" och tilldela nu nedanstående makro:-
Private Sub Main_data_Click ()
Arbetsblad ("Rapport"). Aktivera
Område ("A19"). Visa
Avsluta Sub
Nu sätter vi in den andra kommandoknappen i rapportbladet och tilldelar makrot att flytta på det första arket. Vi måste följa nedanstående steg:-
- Byt namn på kommandoknappen med namnet "Data" och tilldela nedan nämnda makro:-
Privat underkommandoButton2_Click ()
Arbetsblad ("Main_Data"). Aktivera
Område ("A1"). Visa
Avsluta Sub
Nu kommer vi att skriva huvudkoden för brevfusion genom att följa nedanstående steg:-
Sätt i kommandoknappen och byt namn på den till “Letter Print” och tilldela sedan nedanstående kod:-
Privat underkommandoButton1_Click ()
Dim Startrow Som heltal, sista som heltal
Dim MsgAs -sträng
Dim TotalrecordsAs String
Dim name 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") = Totalposter
Dim mydate As Date
Ange WRP = Kalkylark ("Rapport")
mydate = Datum
WRP.Range ("A9") = mydate
WRP.Range ("A9"). NumberFormat = "[$ -F800] dddd, mmmm, dd, åååå"
WRP.Range ("A9"). HorizontalAlignment = xlLeft
Startrow = InputBox ("Ange den första posten som ska skrivas ut.")
lastrow = InputBox ("Ange den sista posten som ska skrivas ut.")
Om Startrow> lastrow Då
Msg = "ERROR" & vbCrLf & "Startrad måste vara mindre än sista raden"
Msgbox Msg, vbCritical, "ExcelTip"
Avsluta om
För i = Startrow Till 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)
Sheets ("Report"). Range ("A7") = name & vbCrLf & Street_Address & vbCrLf & city & region & country & vbCrLf & postal
Sheets ("Report"). Range ("A11") = "Dear" & "" & name & ","
CheckBox1 = Sant
Om CheckBox1 Då
ActiveSheet.PrintPreview
Annan
ActiveSheet.PrintOut
Avsluta om
Nästa i
Avsluta Sub
Kodförklaring: - Först definierar vi variablerna, sedan definierar vi datum- och datumformat, sedan definierar vi den sista raden och startraden. Sedan har vi skapat meddelandefält för att överföra meddelandet. Sedan kommer vi att definiera data och intervall som vi vill fånga i bokstav.
- För att köra koden, tryck på tangenten F5 på tangentbordet.
- Då måste du ange den första registreringspunkten. Efter det får du en ny meddelanderuta för att ange den sista punkten.
- Och då får du dokumentet som visas nedan
- Brevet kommer att uppdateras enligt de nämnda detaljerna i huvuddata.
Det är så vi kan automatisera e -postsammanfogning via VBA i Microsoft Excel.