Kaip automatizuoti laiškų suliejimą naudojant VBA „Microsoft Excel“

Anonim

Šiame straipsnyje mes sužinosime, kaip automatizuoti laiškų sujungimą naudojant „Microsoft Excel“ VBA.

Sujungimas laiškais: - tai šaltinis, skirtas sujungti duomenų informaciją į tekstą ir tada atspausdinti dokumentą. Norėdami atlikti tokią operaciją, naudojame „Microsoft Word“.

Supraskime atlikdami paprastą pratimą:-

Ataskaitos lape turime raidžių formatą ir norime pritaikyti laiškų suliejimą per VBA, kuriame taip pat norime pakeisti raidės informaciją.

Turime 2 lapus. 1 lape yra duomenų su išsamia informacija, kam norime duoti laiškus. Pirmųjų duomenų A stulpelyje yra Pavadinimas, B stulpelyje - gatvės adresas, C stulpelyje - miestas, D stulpelio regionas, E stulpelyje ir F stulpelyje yra pašto pašto indeksas. Yra vienas komandų mygtukas, kurį reikia perkelti ataskaitos lape.

2antra lape yra raidžių formatas su 2 komandų mygtukais; vienas mygtukas, skirtas judėti duomenų lape, o antrasis komandinis mygtukas - dirbti sujungiant laiškus

Pirmiausia parašysime pagrindinių duomenų komandų mygtuko VBA kodą. Turime atlikti toliau nurodytus veiksmus:-

  • Pirmiausia į darbalapį įterpsime komandos mygtuką.
  • Eikite į skirtuką „Kūrėjas“ ir įterpkite „Activexcontrol“ mygtuką „Command“.
  • Pervardykite komandos mygtuką pavadinimu „Letter“ ir dabar priskirkite žemiau nurodytą makrokomandą:-

Privatus antrinis Main_data_Click ()

Darbo lapai („Ataskaita“). Aktyvinti

Diapazonas („A19“). Rodyti

Pabaiga Sub

Dabar į ataskaitos lapą įterpsime antrąjį komandos mygtuką ir priskirsime makrokomandą judėti pirmame lape. Turime atlikti toliau nurodytus veiksmus:-

  • Pervardykite komandos mygtuką pavadinimu „Duomenys“ ir priskirkite žemiau nurodytą makrokomandą:-

Privati ​​antrinė komandaButton2_Click ()

Darbo lapai („Main_Data“). Aktyvinti

Diapazonas („A1“). Rodyti

Pabaiga Sub

Dabar parašysime pagrindinį pašto suliejimo kodą, atlikdami toliau nurodytus veiksmus:-

Įdėkite komandos mygtuką ir pervardykite jį kaip „Letter Print“, tada priskirkite toliau nurodytą kodą:-

Privati ​​antrinė komandaButton1_Click ()

Dim Startrow Kaip sveikasis skaičius, paskutinis kaip sveikasis skaičius

Dim MsgAs eilutė

„Dim Totalrecords“ kaip eilutė

Prastas pavadinimas kaip eilutė, Street_AddressAs eilutė, miestas kaip eilutė, regionas kaip eilutė, šalis kaip eilutė, paštas kaip eilutė

Totalrecords = "= counta (Main_Data! A: A)"

Diapazonas ("L1") = Iš viso įrašų

Sutemdyti datą kaip datą

Nustatyti WRP = Lakštai („Ataskaita“)

mydate = data
WRP.Range ("A9") = mano data

WRP.Range ("A9"). NumberFormat = "[$ -F800] dddd, mmmm, dd, yyyy"

WRP.Range ("A9"). HorizontalAlignment = xlLeft

Startrow = InputBox („Įveskite pirmąjį spausdinamą įrašą“).

lastrow = InputBox ("Įveskite paskutinį spausdinamą įrašą.")

Jei Startrow> lastrow Tada

Msg = "ERROR" & vbCrLf & "Pradinė eilutė turi būti mažesnė nei paskutinė eilutė"

„Msgbox“ žinutė, „vbCritical“, „ExcelTip“

Pabaiga Jei

Dėl i = Startrow Norėdami perkelti

pavadinimas = Lakštai ("Pagrindiniai_datai"). Ląstelės (i, 1)

Gatvės_adresas = Skaičiuoklės („Pagrindiniai duomenys“). Ląstelės (i, 2)

city ​​= Sheets ("Main_data"). Ląstelės (i, 3)

region = Sheets ("Main_data"). Ląstelės (i, 4)

country = Sheets ("Main_data"). Ląstelės (i, 5)

postal = Sheets ("Main_data"). Ląstelės (i, 6)

Skaičiuoklės („Ataskaita“). Diapazonas („A7“) = pavadinimas & vbCrLf & Street_Address & vbCrLf & miestas & regionas & šalis & vbCrLf ir paštas

Skaičiuoklės ("Ataskaita"). Diapazonas ("A11") = "Mieli" & "" & vardas & ","

CheckBox1 = Tiesa

Jei pažymimas 1 langelis

ActiveSheet.PrintPreview

Kitas

ActiveSheet.PrintOut

Pabaiga Jei

Kitas I.

Pabaiga Sub

Kodo paaiškinimas: - Pirmiausia nustatysime kintamuosius, tada nustatysime datą ir datos formatą, tada - paskutinę eilutę ir pradžios eilutę. Tada mes sukūrėme pranešimų dėžutę pranešimui perduoti. Tada mes nustatysime duomenis ir diapazoną, kurį norime užfiksuoti laišku.

  • Norėdami paleisti kodą, paspauskite klaviatūros klavišą F5.
  • Tada turėsite įvesti pirmąjį įrašo tašką. Po to gausite naują pranešimų laukelį, kuriame bus įvestas paskutinis taško įrašas.

  • Ir tada gausite žemiau pateiktą dokumentą

  • Laiškas bus atnaujintas atsižvelgiant į pagrindiniuose duomenyse nurodytą informaciją.

Taip galime automatizuoti laiškų sujungimą per VBA „Microsoft Excel“.