Ako automatizovať hromadnú korešpondenciu prostredníctvom VBA v programe Microsoft Excel

Anonim

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.