V tomto článku sa naučíme automatizovať hromadnú korešpondenciu pomocou jazyka VBA v programe Microsoft Excel.
Hromadná korešpondencia: - Toto je zdroj na zlúčenie informácií o údajoch do textu a potom vytlačenie dokumentu. Na vykonanie takejto operácie používame program Microsoft Word.
Poďme pochopiť jednoduché cvičenie:-
V liste máme formát listu a chceme použiť hromadnú korešpondenciu prostredníctvom VBA, v ktorej chceme tiež zmeniť podrobnosti listu.
Máme 2 listy. 1 list obsahuje údaje s podrobnosťami, ktorým chceme dať listy. V prvých údajoch stĺpec A obsahuje názov, stĺpec B obsahuje adresu ulice, stĺpec C obsahuje mesto, oblasť stĺpca D a stĺpce E a stĺpce F obsahujú poštové smerovacie číslo. V hárku zostavy sa pohybuje jedno príkazové tlačidlo.
2nd list má formát písmena s 2 príkazovými tlačidlami; jedno tlačidlo na pohyb v dátovom liste a druhé príkazové tlačidlo slúži na hromadnú korešpondenciu
Najprv napíšeme kód VBA pre príkazové tlačidlo hlavných údajov. Musíme postupovať podľa nižšie uvedených krokov:-
- Najprv vložíme príkazové tlačidlo do pracovného hárka.
- Prejdite na kartu Vývojár a potom vložte príkazové tlačidlo z Activexcontrol.
- Premenujte príkazové tlačidlo na názov „Letter“ a teraz priraďte nižšie uvedené makro:-
Súkromná vedľajšia hlavná_dáta_klik ()
Pracovné listy („Správa“). Aktivujte
Rozsah („A19“). Zobraziť
Koniec pod
Teraz vložíme druhé príkazové tlačidlo do listu zostavy a priradíme makru, aby sa pohybovalo na prvom hárku. Musíme postupovať podľa nižšie uvedených krokov:-
- Premenujte príkazové tlačidlo na názov „Údaje“ a priraďte nižšie uvedené makro:-
Súkromný sub CommandButton2_Click ()
Pracovné listy („Main_Data“). Aktivujte
Rozsah („A1“). Zobraziť
Koniec pod
Teraz napíšeme hlavný kód pre hromadnú korešpondenciu podľa nižšie uvedených krokov:-
Vložte príkazové tlačidlo a premenujte ho na „Letter Print“ a potom priraďte nižšie uvedený kód:-
Súkromné sub CommandButton1_Click ()
Dim StartrowAs Integer, lastrow As Integer
Dim MsgAs String
Dim Totalrecords ako reťazec
Dim názov As String, Street_AddressAs String, mesto As String, región As String, krajina As String, poštové As String
Totalrecords = "= počet (Main_Data! A: A)"
Rozsah ("L1") = Celkový počet záznamov
Dim mydate As Date
Nastaviť WRP = listy („Prehľad“)
mydate = Dátum
WRP.Range ("A9") = mydate
WRP.Range ("A9"). NumberFormat = "[$ -F800] dddd, mmmm, dd, yyyy"
WRP.Range ("A9"). HorizontalAlignment = xlLeft
Startrow = InputBox („Zadajte prvý záznam, ktorý sa má vytlačiť.“)
lastrow = InputBox ("Zadajte posledný záznam na tlač.")
Ak Startrow> lastrow Then
Msg = "ERROR" & vbCrLf & "Počiatočný riadok musí byť menší ako posledný riadok"
Msgbox Msg, vbCritical, "ExcelTip"
Koniec Ak
For i = Startrow To lastrow
name = Sheets ("Main_data"). Bunky (i, 1)
Street_Address = Tabuľky („Hlavné_údaje“). Bunky (i, 2)
city = Sheets ("Main_data"). Bunky (i, 3)
region = Sheets ("Main_data"). Bunky (i, 4)
country = Sheets ("Main_data"). Bunky (i, 5)
postal = Sheets ("Main_data"). Bunky (i, 6)
Tabuľky („Správa“). Rozsah („A7“) = názov & vbCrLf & Street_Address & vbCrLf & mesto a región a krajina & vbCrLf & poštové
Tabuľky („Správa“). Rozsah („A11“) = „Vážený“ & „“ & meno & „,“
CheckBox1 = Pravda
Ak CheckBox1 Potom
ActiveSheet.PrintPreview
Inak
ActiveSheet.PrintOut
Koniec Ak
Ďalej i
Koniec pod
Vysvetlenie kódu: - Najprv definujeme premenné, potom definujeme dátum a formát dátumu, potom definujeme posledný riadok a štartovací riadok. Potom sme vytvorili schránku správ na prenos správy. Potom definujeme údaje a rozsah, ktoré chceme zachytiť v liste.
- Kód spustíte stlačením klávesu F5 na klávesnici.
- Potom musíte zadať prvý bod záznamu. Potom dostanete nové pole so správou na zadanie posledného záznamu bodu.
- A potom dostanete nižšie uvedený dokument
- List bude aktualizovaný podľa uvedených podrobností v hlavných údajoch.
Toto je spôsob, akým môžeme automatizovať hromadnú korešpondenciu prostredníctvom VBA v programe Microsoft Excel.