V tomto článku se naučíme automatizovat hromadnou korespondenci pomocí VBA v Microsoft Excelu.
Sloučení pošty: - Toto je zdroj pro sloučení informací o datech do textu a poté vytištění dokumentu. K provedení takové operace používáme Microsoft Word.
Pojďme si porozumět jednoduchým cvičením:-
V listu sestavy máme formát dopisu a chceme použít hromadnou korespondenci prostřednictvím VBA, ve které chceme také změnit detaily dopisu.
Máme 2 listy. 1 list obsahuje data s podrobnostmi, kterým chceme dát dopisy. V prvních datech obsahuje sloupec A název, sloupec B obsahuje adresu ulice, sloupec C obsahuje město, region sloupce D a sloupec E a sloupec F obsahují poštovní zip. V listu sestavy se pohybuje jedno příkazové tlačítko.
2nd list má formát písmene se 2 příkazovými tlačítky; jedno tlačítko pro pohyb v datovém listu a druhé příkazové tlačítko pro práci pro hromadnou korespondenci
Nejprve napíšeme kód VBA pro příkazové tlačítko hlavních dat. Musíme postupovat podle níže uvedených kroků:-
- Nejprve do listu vložíme příkazové tlačítko.
- Přejděte na kartu Vývojář a poté vložte příkazové tlačítko z Activexcontrol.
- Přejmenujte příkazové tlačítko na název „Letter“ a nyní přiřaďte níže uvedené makro:-
Private Sub Main_data_Click ()
Pracovní listy („Report“). Aktivujte
Rozsah („A19“). Zobrazit
End Sub
Nyní vložíme druhé příkazové tlačítko do listu sestavy a přiřadíme makru, aby se přesunulo na první list. Musíme postupovat podle níže uvedených kroků:-
- Přejmenujte příkazové tlačítko na název „Data“ a přiřaďte níže uvedené makro:-
Private Sub CommandButton2_Click ()
Pracovní listy („Main_Data“). Aktivujte
Rozsah („A1“)
End Sub
Nyní napíšeme hlavní kód pro hromadnou korespondenci podle níže uvedených kroků:-
Vložte příkazové tlačítko a přejmenujte jej na „Letter Print“ a poté přiřaďte níže uvedený kód:-
Private Sub CommandButton1_Click ()
Dim StartrowAs Integer, lastrow As Integer
Dim MsgAs String
Dim Totalrecords jako řetězec
Dim name As String, Street_AddressAs String, city As String, region As String, country As String, postal As String
Totalrecords = "= počet (Main_Data! A: A)"
Rozsah ("L1") = celkový počet záznamů
Dim mydate As Date
Nastavit WRP = listy ("Report")
mydate = Datum
WRP.Range ("A9") = mydate
WRP.Range ("A9"). NumberFormat = "[$ -F800] dddd, mmmm, dd, yyyy"
WRP.Range ("A9"). HorizontalAlignment = xlLeft
Startrow = InputBox ("Zadejte první záznam k tisku.")
lastrow = InputBox ("Zadejte poslední záznam k tisku.")
Pokud Startrow> lastrow Then
Msg = "ERROR" & vbCrLf & "Počáteční řádek musí být menší než poslední řádek"
Msgbox Msg, vbCritical, "ExcelTip"
Konec If
For i = Startrow To lastrow
name = Sheets ("Main_data"). Buňky (i, 1)
Street_Address = Listy („Main_data“). Buňky (i, 2)
city = Sheets ("Main_data"). Buňky (i, 3)
region = Sheets ("Main_data"). Buňky (i, 4)
country = Sheets ("Main_data"). Buňky (i, 5)
postal = Sheets ("Main_data"). Buňky (i, 6)
Tabulky („Report“). Range („A7“) = name & vbCrLf & Street_Address & vbCrLf & city & region & country & vbCrLf & postal
Listy („Zpráva“). Rozsah („A11“) = „Vážený“ & „“ & jméno & „,“
CheckBox1 = True
If CheckBox1 Then
ActiveSheet.PrintPreview
Jiný
ActiveSheet.PrintOut
Konec If
Příště já
End Sub
Vysvětlení kódu: - Nejprve definujeme proměnné, potom definujeme datum a formát data, poté definujeme poslední řádek a počáteční řádek. Poté jsme vytvořili schránku zpráv pro přenos zprávy. Poté definujeme data a rozsah, který chceme zachytit v dopise.
- Kód spustíte stisknutím klávesy F5 na klávesnici.
- Poté musíte zadat první záznamový bod. Poté dostanete nové okno se zprávou pro zadání posledního záznamu bodu.
- A poté získáte níže uvedený dokument
- Dopis bude aktualizován podle uvedených podrobností v hlavních datech.
Toto je způsob, jakým můžeme automatizovat hromadnou korespondenci prostřednictvím VBA v Microsoft Excelu.