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.