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.