Kuidas automatiseerida kirjakooste Microsoft Excelis VBA kaudu

Lang L: none (table-of-contents)

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.

Te aitate arengu ala, jagades leht oma sõpradega

wave wave wave wave wave