Slik automatiserer du fletting av e -post via VBA i Microsoft Excel

Anonim

I denne artikkelen skal vi lære å automatisere sammenslåingen av e -post ved å bruke VBA i Microsoft Excel.

Mail Merge: - Dette er kilden for å flette dataens informasjon til tekst og deretter skrive ut dokumentet. For å utføre en slik operasjon bruker vi Microsoft Word.

La oss forstå med en enkel øvelse:-

Vi har et brevformat i rapportarket, og vi ønsker å bruke sammenslåing av post via VBA der vi også ønsker å endre brevdetaljene.

Vi har 2 ark. 1 ark inneholder data med detaljer til hvem vi ønsker å gi bokstaver. I de første dataene inneholder kolonne A navn, kolonne B inneholder gateadresse, kolonne C inneholder by, kolonne D -region, og kolonne E og kolonne F inneholder postnummer. Det er én kommandoknapp for å flytte i rapportarket.

2nd arket har bokstavformat med 2 kommandoknapper; en knapp for å flytte på databladet og den andre kommando -knappen er å arbeide for sammenslåing av e -post

For det første skriver vi VBA -koden for kommandoknappen til Hoveddata. Vi må følge trinnene nedenfor:-

  • Først vil vi sette inn kommandoknappen i regnearket.
  • Gå til kategorien Utvikler og sett deretter inn kommandoknappen fra Activexcontrol.
  • Gi nytt navn til kommandoknappen med navnet “Letter”, og tildel nå makroen nedenfor:-

Private Sub Main_data_Click ()

Regneark ("Rapport"). Aktiver

Område ("A19"). Vis

Slutt Sub

Nå vil vi sette inn den andre kommando -knappen i rapportarket og tildele makroen til å flytte på det første arket. Vi må følge trinnene nedenfor:-

  • Gi nytt navn til kommandoknappen med navnet "Data", og tilordne makroen nedenfor:-

Private Sub CommandButton2_Click ()

Regneark ("Main_Data"). Aktiver

Område ("A1"). Vis

Slutt Sub

Nå skriver vi hovedkoden for sammenslåing av e-post ved å følge trinnene nedenfor:-

Sett inn kommandoknappen og gi den nytt navn til "Letter Print", og tildel deretter koden nedenfor:-

Private Sub CommandButton1_Click ()

Dim Startrow Som heltall, lastrow som heltall

Dim MsgAs streng

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

Angi WRP = Regneark ("Rapport")

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

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

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

Startrow = InputBox ("Skriv inn den første posten som skal skrives ut.")

lastrow = InputBox ("Skriv inn den siste posten som skal skrives ut.")

Hvis Startrow> lastrow Da

Msg = "ERROR" & vbCrLf & "Startrad må være mindre enn siste rad"

Msgbox Msg, vbCritical, "ExcelTip"

Slutt om

For i = Startrow Til lastrow

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

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

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

region = Ark ("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 = True

Hvis CheckBox1 Da

ActiveSheet.PrintPreview

Ellers

ActiveSheet.PrintOut

Slutt om

Neste jeg

Slutt Sub

Kodeforklaring: - Først definerer vi variablene, deretter definerer vi dato- og datoformatet, deretter definerer vi den siste raden og startraden. Så har vi opprettet meldingsboks for overføring av meldingen. Deretter definerer vi dataene og området som vi ønsker å fange i bokstav.

  • For å kjøre koden, trykk på tasten F5 på tastaturet.
  • Deretter må du angi det første registreringspunktet. Etter det får du en ny meldingsboks for å skrive inn den siste posten.

  • Og så får du dokumentet som vises nedenfor

  • Brevet vil bli oppdatert i henhold til de nevnte detaljene i hoveddataene.

Dette er måten vi kan automatisere sammenslåing av e -post gjennom VBA i Microsoft Excel.