Kuidas automatiseerida kirjakooste Microsoft Excelis VBA kaudu

Anonim

Selles artiklis õpime, kuidas automatiseerida kirjakooste Microsoft Excelis VBA abil.

Kirjakooste: - see on allikas andmete teabe tekstiks ühendamiseks ja seejärel dokumendi printimiseks. Sellise toimingu tegemiseks kasutame Microsoft Wordi.

Mõistame lihtsa harjutusega:-

Meil on aruandelehel kirjavorming ja tahame rakendada kirjakooste VBA kaudu, milles soovime muuta ka kirja üksikasju.

Meil on 2 lehte. 1 leht sisaldab andmeid koos üksikasjadega, kellele me soovime kirju anda. Esimestes andmetes sisaldab veerg A nime, veerg B tänava aadressi, veerg C linna, veeru D piirkonda ning veerg E ja veerg F sisaldab postiindeksit. Aruande lehel saab liikuda ühe käsunupu abil.

2nd lehel on tähevorming koos kahe käsunupuga; üks nupp andmelehel liikumiseks ja teine ​​käsunupp on postituste ühendamiseks

Esiteks kirjutame põhiandmete käsunupu VBA koodi. Peame järgima alltoodud samme:-

  • Kõigepealt sisestame töölehele käsunupu.
  • Minge vahekaardile Arendaja ja sisestage Activexcontrolist käsunupp.
  • Nimeta käsunupp ümber nimega „Letter” ja määrake nüüd allpool nimetatud makro:-

Privaatne alam Main_data_Click ()

Töölehed ("Aruanne"). Aktiveerige

Vahemik ("A19"). Näita

End Sub

Nüüd sisestame aruande lehele teise käsunupu ja määrame makro esimesel lehel liikumiseks. Peame järgima alltoodud samme:-

  • Nimeta käsunupp ümber nimega „Andmed” ja määrake allpool nimetatud makro:-

Privaatne alamkäsk Button2_Click ()

Töölehed ("Main_Data"). Aktiveeri

Vahemik ("A1"). Näita

End Sub

Nüüd kirjutame kirjakooste põhikoodi, järgides allpool toodud samme:-

Sisestage käsunupp ja nimetage see ümber täheprintimiseks ning määrake seejärel allpool nimetatud kood:-

Privaatne alamkäsk Button1_Click ()

Dim Startrow täisarvuna, viimati täisarvuna

Dim MsgAs string

Summuta kogurekordeid stringina

Hämardatud nimi stringina, Street_AddressAs String, linn kui string, piirkond kui string, riik kui string, postitus kui string

Totalrecords = "= loendus (põhiandmed! A: A)"

Vahemik ("L1") = Totalrecords

Dim mydate as Date

Set WRP = Sheets ("Aruanne")

mydate = Kuupäev
WRP.Range ("A9") = minu kuupäev

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

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

Startrow = InputBox ("Sisestage esimene prinditav kirje.")

lastrow = InputBox ("Sisestage viimane trükitav kirje.")

Kui Startrow> lastrow Then

Msg = "ERROR" & vbCrLf & "Alustav rida peab olema väiksem kui viimane rida"

Msgbox Msg, vbCritical, "ExcelTip"

Lõpp Kui

Sest i = Startrow Et sirvida

name = Sheets ("Main_data"). Lahtrid (i, 1)

Street_Address = Sheets ("Main_data"). Lahtrid (i, 2)

city ​​= Sheets ("Main_data"). Lahtrid (i, 3)

region = Sheets ("Main_data"). Lahtrid (i, 4)

country = Sheets ("Main_data"). Lahtrid (i, 5)

postal = Sheets ("Main_data"). Lahtrid (i, 6)

Arvutustabelid ("Aruanne"). Vahemik ("A7") = nimi & vbCrLf & Street_Address & vbCrLf & linn & piirkond & riik & vbCrLf & post

Arvutustabelid ("Aruanne"). Vahemik ("A11") = "Kallis" & "" & nimi & ","

CheckBox1 = Tõsi

Kui märkeruut1 siis

ActiveSheet.PrintPreview

Muidu

ActiveSheet.PrintOut

Lõpp Kui

Edasi i

End Sub

Koodi selgitus: - Esiteks määratleme muutujad, seejärel kuupäeva ja kuupäeva vormingu, seejärel määratleme viimase rea ja algusrea. Seejärel oleme loonud sõnumi edastamiseks sõnumikasti. Seejärel määratleme andmed ja vahemiku, mida tahame kirjaga jäädvustada.

  • Koodi käivitamiseks vajutage klaviatuuril klahvi F5.
  • Seejärel peate sisestama esimese salvestuspunkti. Pärast seda saate uue sõnumikasti punkti viimase kirje sisestamiseks.

  • Ja siis saate allpool näidatud dokumendi

  • Kirju uuendatakse vastavalt põhiandmete mainitud üksikasjadele.

See on viis, kuidas me saame automatiseerida kirjakooste Microsoft Excelis VBA kaudu.