Jak automatizovat hromadnou korespondenci prostřednictvím VBA v aplikaci Microsoft Excel

Anonim

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.