Så här automatiserar du e -postsammanfogning via VBA i Microsoft Excel

Anonim

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.