In dit artikel gaan we leren hoe u de samenvoegbewerking kunt automatiseren met behulp van de VBA in Microsoft Excel.
Afdruk samenvoegen: - Dit is de bron om de gegevens van de gegevens in tekst samen te voegen en vervolgens het document af te drukken. Om een dergelijke bewerking uit te voeren, gebruiken we Microsoft Word.
Laten we het met een eenvoudige oefening begrijpen: -
We hebben een briefformaat in het rapportblad en we willen mail merge toepassen via VBA waarin we ook de briefdetails willen wijzigen.
We hebben 2 bladen. 1 blad bevat gegevens met details aan wie we brieven willen geven. In de eerste gegevens bevat kolom A Naam, kolom B het adres, kolom C bevat stad, kolom D regio en kolom E en kolom F bevatten postcode. Er is één opdrachtknop om in het rapportblad te bewegen.
2nd blad heeft het letterformaat met 2 opdrachtknoppen; één knop om op het gegevensblad te gaan en de tweede opdrachtknop is om te werken voor mail merge
Eerst zullen we de VBA-code schrijven voor de opdrachtknop van Main Data. We moeten de onderstaande stappen volgen: -
- Eerst zullen we de opdrachtknop in het werkblad invoegen.
- Ga naar het tabblad Ontwikkelaar en voeg vervolgens de opdrachtknop in vanuit Activexcontrol.
- Hernoem de Command-knop met de naam "Letter" en wijs nu onderstaande macro toe: -
Privé sub Main_data_Click()
Werkbladen ("Rapport"). Activeren
Bereik ("A19").Toon
Einde sub
Nu zullen we de tweede opdrachtknop in het rapportblad invoegen en de macro toewijzen om op het eerste blad te verplaatsen. We moeten de onderstaande stappen volgen: -
- Hernoem de Command-knop met de naam "Data" en wijs onderstaande macro toe: -
Privé Sub CommandButton2_Click()
Werkbladen ("Main_Data"). Activeren
Bereik ("A1").Toon
Einde sub
Nu zullen we de hoofdcode voor mail merge schrijven door de onderstaande stappen te volgen: -
Voeg de opdrachtknop in en hernoem deze als "Letter Print", en wijs vervolgens de onderstaande code toe: -
Privé Sub CommandButton1_Click()
Dim StartrowAls geheel getal, laatste rij als geheel getal
Dim MsgAs String
Dim TotalrecordsAls String
Dim naam As String, Straat_AddressAs String, plaats As String, regio As String, land As String, post As String
Totalrecords = "=counta(Main_Data!A:A)"
Bereik ("L1") = Totaalrecords
Dim mijn datum als datum
Stel WRP = Sheets ("Rapport") in
mijndatum = Datum
WRP.Bereik ("A9") = mijndatum
WRP.Range("A9").NumberFormat = "[$-F800]dddd,mmmm,dd,jjjj"
WRP.Bereik ("A9"). Horizontale uitlijning = xlLinks
Startrow = InputBox ("Voer het eerste record in om af te drukken.")
lastrow = InputBox("Voer het laatste record in om af te drukken.")
Als Startrij>laatste rij Dan
Msg = "ERROR" &vbCrLf& "Beginrij moet kleiner zijn dan de laatste rij"
Msgbox Msg, vbCritical, "ExcelTip"
Stop als
Voor i = Startrij Tot laatste rij
naam = Bladen ("Hoofdgegevens"). Cellen (i, 1)
Street_Address = Bladen ("Hoofdgegevens"). Cellen (i, 2)
stad = Bladen ("Hoofdgegevens"). Cellen (i, 3)
regio = Bladen ("Main_data"). Cellen (i, 4)
land = Bladen ("Main_data"). Cellen (i, 5)
post = Bladen ("Main_data"). Cellen (i, 6)
Sheets("Rapport").Range("A7") = naam &vbCrLf&Street_Address&vbCrLf& stad & regio & land &vbCrLf& post
Sheets("Rapport").Range("A11") = "Geachte" & " " & naam & ","
CheckBox1 = True
Als CheckBox1 Dan
ActiveSheet.Afdrukvoorbeeld
Anders
ActiveSheet.PrintOut
Stop als
volgende i
Einde sub
Code Uitleg: - Eerst zullen we de variabelen definiëren, dan zullen we de datum- en datumnotatie definiëren, dan zullen we de laatste rij en startrij definiëren. Vervolgens hebben we een berichtvenster gemaakt voor het verzenden van het bericht. Vervolgens definiëren we de gegevens en het bereik dat we in brief willen vastleggen.
- Om de code uit te voeren, drukt u op de toets F5 op het toetsenbord.
- Vervolgens moet u het eerste opnamepunt invoeren. Daarna krijgt u een nieuw berichtvenster om het laatste record van het punt in te voeren.
- En dan krijg je het hieronder getoonde document
- De brief wordt bijgewerkt volgens de genoemde details in de hoofdgegevens.
Dit is de manier waarop we mail merge kunnen automatiseren via VBA in Microsoft Excel.