„Excel“ VBA kodavimas: darbas su kodo langu

Kai įgyjate įgūdžių dirbti su Excel VBA, daug laiko praleidžiate dirbdami kodo languose. Įrašytos makrokomandos yra saugomos modulyje, o „Excel“ VBA kodą galite įvesti tiesiai VBA modulyje.

VBA kodo langų sumažinimas ir padidinimas

Jei atidarėte kelis projektus, VBE bet kuriuo metu gali turėti daug kodo langų.

„Excel“ VBA kodavimas: darbas su kodo langu

Kodo lango perkrova nėra gražus vaizdas.

Kodo langai yra labai panašūs į darbaknygės langus programoje „Excel“. Galite juos sumažinti, padidinti, pakeisti dydį, paslėpti, pertvarkyti ir pan. Daugeliui žmonių daug lengviau padidinti kodo langą, kuriame jie dirba. Taip matysite daugiau kodo ir nesiblašysite.

Norėdami padidinti kodo langą, spustelėkite jo pavadinimo juostoje esantį mygtuką Didinti (tiesiai šalia X). Arba tiesiog dukart spustelėkite pavadinimo juostą, kad ją padidintumėte. Norėdami atkurti kodo lango pradinį dydį, spustelėkite mygtuką Atkurti. Kai langas yra padidintas, jo pavadinimo juosta nėra matoma, todėl mygtuką Atkurti rasite po VBE pavadinimo juosta.

Kartais galbūt norėsite matyti du ar daugiau kodo langų. Pavyzdžiui, galbūt norėsite palyginti dviejų modulių kodą arba nukopijuoti kodą iš vieno modulio į kitą. Langus galite išdėstyti rankiniu būdu arba pasirinkti Langas → Išklotinės horizontaliai arba Langas → Plytelės vertikaliai, kad juos išdėstytumėte automatiškai.

Galite greitai perjungti kodo langus paspausdami Ctrl+F6. Jei pakartosite tą klavišų kombinaciją, toliau važiuosite per visus atidarytus kodo langus. Paspaudus Ctrl+Shift+F6, langai perjungiami atvirkštine tvarka. (Norėdami gauti daugiau informacijos, peržiūrėkite šiuos Excel VBA sparčiuosius klavišus .)

Sumažinus kodo langą, jis bus pašalintas. Taip pat galite spustelėti lango mygtuką Uždaryti (kuris rodo X) kodo lango pavadinimo juostoje, kad uždarytumėte langą. (Uždarius langą jis tiesiog paslepiamas; nieko neprarasite.) Norėdami jį vėl atidaryti, tiesiog dukart spustelėkite atitinkamą objektą projekto lange. Beje, dirbti su šiais kodo langais skamba sunkiau nei yra iš tikrųjų.

VBA modulio kūrimas

Paprastai „Excel“ VBA modulyje gali būti trijų tipų kodai:

  • Deklaracijos: vienas ar daugiau informacijos teiginių, kuriuos pateikiate VBA. Pavyzdžiui, galite deklaruoti planuojamų naudoti kintamųjų duomenų tipą arba nustatyti kitas modulio parinktis. Deklaracijos iš esmės yra namų tvarkymo ataskaitos. Jie iš tikrųjų nėra įvykdyti.
  • Papildomos procedūros: programavimo instrukcijų rinkinys, kuris, kai jis vykdomas, atlieka tam tikrą veiksmą.
  • Funkcijų procedūros: programavimo instrukcijų rinkinys, grąžinantis vieną reikšmę (koncepcija panaši į darbalapio funkciją, pvz., SUM).

Viename VBA modulyje galima saugoti bet kokį skaičių papildomų procedūrų, funkcijų procedūrų ir deklaracijų. Na, yra limitas – apie 64 000 simbolių viename modulyje. Mažai tikėtina, kad net priartėsite prie 64 000 simbolių limito. Bet jei tai padarėte, sprendimas yra paprastas: tiesiog įdėkite naują modulį.

Kaip organizuoti VBA modulį, visiškai priklauso nuo jūsų. Kai kurie žmonės nori laikyti visą programos VBA kodą viename VBA modulyje; kiti mėgsta padalyti kodą į kelis modulius. Tai asmeninis pasirinkimas, kaip ir baldų išdėstymas.

VBA kodo įvedimas į modulį

Tuščias VBA modulis yra tarsi netikras maistas, kurį matote kai kurių kinų restoranų languose; atrodo gerai, bet tau tai tikrai neduoda jokios naudos. Kad galėtumėte daryti ką nors prasmingo, VBA modulyje turite turėti VBA kodą. VBA kodą į VBA modulį galite gauti trimis būdais:

  • Įveskite kodą tiesiogiai.
  • Naudokite „Excel“ makrokomandų įrašymo priemonę, kad įrašytumėte savo veiksmus ir konvertuotumėte juos į VBA kodą.
  • Nukopijuokite kodą iš vieno modulio ir įklijuokite jį į kitą.

Tiesioginis Excel VBA kodo įvedimas

Kartais geriausias maršrutas yra tiesiausias. Kodo įvedimas tiesiogiai apima... na, kodo įvedimas tiesiogiai. Kitaip tariant, kodą įvedate naudodami klaviatūrą. Teksto įvedimas ir redagavimas VBA modulyje veikia taip, kaip tikitės. Galite pasirinkti, kopijuoti, iškirpti, įklijuoti ir atlikti kitus veiksmus su tekstu.

Naudokite klavišą Tab, kad įtrauktumėte kai kurias eilutes, kad kodą būtų lengviau skaityti. Įtrauka nebūtina, bet tai yra geras įprotis įgyti. Studijuodami Excel VBA kodavimą suprasite, kodėl kodo eilučių įtrauka yra naudinga.

Viena VBA kodo eilutė gali būti tiek ilga, kiek jums reikia. Tačiau, norėdami suskaidyti ilgas kodo eilutes, galbūt norėsite naudoti eilutės tęsimo simbolius. Norėdami tęsti vieną kodo eilutę (taip pat žinomą kaip teiginį) iš vienos eilutės į kitą, pirmąją eilutę užbaikite tarpu ir pabraukimu (_). Tada tęskite teiginį kitoje eilutėje. Ir nepamirškite erdvės. Pabraukimo simbolis, prieš kurį nėra tarpo, neatliks savo darbo.

Štai vieno teiginio, suskaidyto į tris eilutes, pavyzdys:

Selection.Sort Key1:=Range("A1"), _
  Order1:=xlDidėjantis, Antraštė:=xlAtspėk, _
  Orientacija:=xlTopToBottom

Šis teiginys veiktų lygiai taip pat, jei būtų įvestas vienoje eilutėje (be eilutės tęsinio simbolių). Atkreipkite dėmesį, kad antroji ir trečioji šio teiginio eilutės yra įtrauktos. Įtrauka yra neprivaloma, tačiau tai padeda paaiškinti, kad šios eilutės nėra atskiri teiginiai.

Baltai dengti inžinieriai, sukūrę VBE, numatė, kad žmonės darys klaidų. Todėl VBE turi kelis anuliavimo ir perdarymo lygius. Jei ištrynėte teiginį, kurio neturėjote, įrankių juostoje spustelėkite mygtuką Anuliuoti (arba paspauskite Ctrl+Z), kol teiginys vėl pasirodys. Atšaukę galite spustelėti mygtuką Perdaryti, kad atliktumėte anuliuotus pakeitimus.

Ar esate pasirengęs įvesti realų kodą? Išbandykite šiuos veiksmus:

Sukurkite naują darbaknygę programoje „Excel“.

Paspauskite Alt + F11, kad suaktyvintumėte VBE.

Projekto lange spustelėkite naujos darbaknygės pavadinimą.

Norėdami į projektą įterpti VBA modulį, pasirinkite Įterpti → Modulis.

Į modulį įveskite šį kodą:

Sub GuessName()
Msg = "Ar jūsų vardas " & Application.UserName & "?"
Ans = MsgBox(Msg, vbYesNo)
Jei Ans = vbNo Tada MsgBox "O, nesvarbu."
Jei Ans = vbYes Tada MsgBox "Aš turiu būti ekstrasensas!"
Pabaigos sub

Perkelkite žymeklį į bet kurią įvesto teksto vietą ir paspauskite F5, kad atliktumėte procedūrą.

F5 yra spartusis klavišas Vykdyti → Vykdyti antrinę/vartotojo formą. Jei teisingai įvedėte kodą, „Excel“ atlieka procedūrą ir galite atsakyti į paprastą dialogo langą. Tekstas dialogo lange skirsis nuo čia rodomo.

„Excel“ VBA kodavimas: darbas su kodo langu

„GuessName“ procedūra rodo šį dialogo langą.

Kai įvesite 5 veiksme nurodytą kodą, galite pastebėti, kad VBE šiek tiek pakoreguoja įvestą tekstą. Pavyzdžiui, po to, kai įvesite sub teiginį, VBE automatiškai įterpia teiginį End Sub. Ir jei praleidžiate tarpą prieš arba po lygybės ženklo, VBE įterpia tarpą jums. Be to, VBE keičia kai kurių tekstų spalvą ir didžiąsias raides. Visa tai yra visiškai normalu. Tai tik VBE būdas išlaikyti tvarkingus ir skaitomus dalykus.

Jei atlikote ankstesnius veiksmus, ką tik parašėte VBA antrinę procedūrą, taip pat žinomą kaip makrokomandą. Kai paspausite F5, „Excel“ vykdo kodą ir vykdo instrukcijas. Kitaip tariant, „Excel“ įvertina kiekvieną teiginį ir daro tai, ką liepėte daryti. (Neleiskite šiai naujai atrastai galiai eiti į galvą.) Šią makrokomandą galite vykdyti bet kokį skaičių kartų, nors po kelių dešimčių kartų ji praranda savo patrauklumą.

Įrašams, šioje paprastoje „Excel“ makrokomandoje naudojamos šios sąvokos:

  • Papildomos procedūros apibrėžimas (pirmoji eilutė)
  • Reikšmių priskyrimas kintamiesiems (Msg ir Ans)
  • Concatenating (prisijungti) eilutę (naudojant ir operatorius)
  • Naudojant integruotą VBA funkciją („MsgBox“)
  • Naudojant integruotas VBA konstantas (vbYesNo, vbNo ir vbYes)
  • „Jei-tada“ konstrukcijos naudojimas (du kartus)
  • Papildomos procedūros pabaiga (paskutinė eilutė)

Naudojant Excel VBA makrokomandų įrašymo įrenginį

Kitas būdas gauti kodą į VBA modulį yra įrašyti savo veiksmus naudojant „Excel“ makrokomandų įrašymo įrenginį.

Beje, jūs visiškai negalite įrašyti aukščiau nurodytos GuessName procedūros. Programoje „Excel“ galite įrašyti tik tuos dalykus, kuriuos galite atlikti tiesiogiai. Pranešimo laukelio rodymas nėra įprastas „Excel“ repertuaras. (Tai VBA dalykas.) Makrokomandų įrašymo priemonė yra naudinga, tačiau daugeliu atvejų tikriausiai turėsite įvesti bent kodą rankiniu būdu.

Štai nuoseklus pavyzdys, kuriame parodyta, kaip įrašyti makrokomandą, kuri įterpia naują darbalapį ir paslepia visas, išskyrus pirmąsias dešimt eilučių ir visus, išskyrus dešimt pirmųjų stulpelių. Jei norite išbandyti šį pavyzdį, pradėkite nuo naujos tuščios „Excel“ darbaknygės ir atlikite šiuos veiksmus:

Suaktyvinkite darbalapį darbaknygėje.

Tiks bet koks „Excel“ darbalapis.

Spustelėkite skirtuką Kūrėjas ir įsitikinkite, kad Naudoti santykines nuorodas nėra paryškinta.

Ši makrokomanda įrašyta naudojant absoliučias nuorodas.

Pasirinkite Kūrėjas → Kodas → Įrašyti makrokomandą arba spustelėkite piktogramą, esančią šalia indikatoriaus Pasirengimas kairiajame būsenos juostos gale.

„Excel“ rodo dialogo langą Įrašyti makrokomandą.

Dialogo lange Įrašyti makrokomandą suteikite makrokomandai pavadinimą TenByTen, nurodykite, kad makrokomandą norite išsaugoti šioje darbaknygėje, ir paspauskite Shift + T, kad būtų rodomas spartusis klavišas.

Makrokomandą galima vykdyti paspaudus Ctrl+Shift+T.

Spustelėkite Gerai, kad pradėtumėte įrašymą. „Excel“ automatiškai įterpia naują VBA modulį į projektą, atitinkantį aktyvią darbaknygę.

Nuo šio momento „Excel“ konvertuoja jūsų veiksmus į VBA kodą. Kol įrašote, piktograma būsenos juostoje virsta mažu kvadratu. Tai priminimas, kad makrokomandos įrašymo priemonė veikia. Taip pat galite spustelėti šią piktogramą, kad sustabdytumėte makrokomandų įrašymo įrenginį.

Spustelėkite naujo lapo piktogramą, esančią paskutinio lapo skirtuko dešinėje.

„Excel“ įterpia naują darbalapį.

Pasirinkite visą K stulpelį (11 stulpelį) ir paspauskite Ctrl+Shift+rodyklė dešinėn; tada dešiniuoju pelės mygtuku spustelėkite bet kurį pasirinktą stulpelį ir nuorodų meniu pasirinkite Slėpti.

„Excel“ paslepia visus pasirinktus stulpelius.

Pasirinkite visą 11 eilutę ir paspauskite Ctrl+Shift+rodyklė žemyn; tada dešiniuoju pelės mygtuku spustelėkite bet kurią pasirinktą eilutę ir nuorodų meniu pasirinkite Slėpti.

„Excel“ paslepia visus pasirinktus stulpelius.

Pasirinkite langelį A1.

Pasirinkite Kūrėjas → Kodas → Sustabdyti įrašymą arba spustelėkite mygtuką Sustabdyti įrašymą būsenos juostoje (mažame kvadrate). „Excel“ nustoja įrašyti jūsų veiksmus.

Norėdami peržiūrėti šią naujai įrašytą makrokomandą, paspauskite Alt + F11, kad suaktyvintumėte VBE. Projekto lange raskite darbaknygės pavadinimą. Matote, kad projekte yra naujas modulis. Modulio pavadinimas priklauso nuo to, ar darbaknygėje buvo kitų modulių, kai pradėjote įrašyti makrokomandą. Jei to nepadarėte, modulis bus pavadintas Module1. Galite du kartus spustelėti modulį, kad pamatytumėte modulio kodo langą.

Štai jūsų veiksmų sugeneruotas kodas:

Sub TenByTen()
'
TenByTen makrokomandą
'
Spartusis klaviatūros klavišas: Ctrl + Shift + T
'
  Sheets.Add After:=ActiveSheet
  Stulpeliai ("K:K"). Pasirinkite
  Diapazonas (Pasirinkimas, pasirinkimas. Pabaiga (xlToRight)).Pasirinkite
  Selection.EntireColumn.Hidden = Tiesa
  Eilutės("11:11"). Pasirinkite
  Diapazonas (Pasirinkimas, pasirinkimas. Pabaiga (xlDown)).Pasirinkite
  Selection.EntireRow.Hidden = Tiesa
  Diapazonas („A1“). Pasirinkite
Pabaigos sub

Norėdami išbandyti šią makrokomandą, suaktyvinkite bet kurį darbalapį ir paspauskite spartųjį klavišą, kurį priskyrėte atlikdami 4 veiksmą: Ctrl + Shift + T.

Jei makrokomandai nepriskyrėte sparčiojo klavišo, nesijaudinkite. Štai kaip parodyti visų galimų makrokomandų sąrašą ir paleisti norimą:

Pasirinkite Kūrėjas → Kodas → Makrokomandos. Klaviatūros gerbėjai gali paspausti Alt + F8.

Bet kuris iš šių metodų rodo dialogo langą, kuriame pateikiamos visos galimos makrokomandos.

Sąraše pasirinkite makrokomandą (šiuo atveju TenByTen).

Spustelėkite mygtuką Vykdyti.

„Excel“ vykdo makrokomandą ir gausite naują darbalapį su dešimčia matomų eilučių ir dešimčia matomų stulpelių.

Galite vykdyti bet kokį skaičių komandų ir atlikti bet kokį skaičių veiksmų, kol veikia makrokomandų įrašymo priemonė. „Excel“ pareigingai verčia pelės veiksmus ir klavišų paspaudimus į VBA kodą.

Ir, žinoma, galite redaguoti makrokomandą ją įrašę. Norėdami išbandyti savo naujus įgūdžius, pabandykite redaguoti makrokomandą taip, kad ji įterptų darbalapį su devyniomis matomomis eilutėmis ir stulpeliais – puikiai tinka „Sudoku“ galvosūkiui.

Kopijuojamas VBA kodas

Paskutinis būdas gauti kodą į VBA modulį yra nukopijuoti jį iš kito modulio arba iš kitos vietos (pvz., svetainės). Pavyzdžiui, pogrupio arba funkcijos procedūra, kurią rašote vienam projektui, taip pat gali būti naudinga kitame projekte. Užuot gaišę laiką pakartotinai įvesdami kodą, galite aktyvuoti modulį ir naudoti įprastas mainų srities kopijavimo ir įklijavimo procedūras. (Tikriausiai jums labiau patinka spartieji klavišai Ctrl+C, norėdami nukopijuoti, ir Ctrl+V, norėdami įklijuoti.) Įklijavę kodą į VBA modulį, galite jį modifikuoti, jei reikia.

Beje, internete rasite daug VBA kodo pavyzdžių. Jei norite juos išbandyti, naršyklėje pasirinkite kodą ir paspauskite Ctrl+C, kad jį nukopijuotumėte. Tada suaktyvinkite modulį ir paspauskite Ctrl+V, kad jį įklijuotumėte.

Kai kopijuojate kodą iš svetainės, kartais jį reikia pataisyti. Pavyzdžiui, kabučių simboliai gali būti „išmaniosios kabutės“ ir juos reikia konvertuoti į paprastus kabučių simbolius. O kartais nusidriekia ilgos eilės. Klaidingus teiginius lengva pastebėti VBE, nes jie rodomi raudonai.


Kaip neleisti „Microsoft Word“ atidaryti failų tik skaitymo režimu sistemoje „Windows“.

Kaip neleisti „Microsoft Word“ atidaryti failų tik skaitymo režimu sistemoje „Windows“.

Kaip neleisti Microsoft Word atidaryti failų tik skaitymo režimu sistemoje Windows. Microsoft Word atidaro failus tik skaitymo režimu, todėl jų redaguoti neįmanoma? Nesijaudinkite, metodai pateikiami žemiau

Kaip ištaisyti neteisingą Microsoft Word dokumentų spausdinimą

Kaip ištaisyti neteisingą Microsoft Word dokumentų spausdinimą

Kaip ištaisyti klaidas spausdinant neteisingus Microsoft Word dokumentus.Klaidos spausdinant Word dokumentus su pakeistais šriftais, netvarkingomis pastraipomis, trūkstamo teksto ar prarasto turinio yra gana dažnos. Tačiau nereikia

Ištrinkite rašiklio ir paryškinimo piešinius savo „PowerPoint“ skaidrėse

Ištrinkite rašiklio ir paryškinimo piešinius savo „PowerPoint“ skaidrėse

Jei naudodami rašiklį ar žymeklį piešėte ant savo PowerPoint skaidrės pristatymo metu, galite išsaugoti brėžinius kitam pristatymui arba ištrinti juos, kad kitą kartą rodydami pradėtumėte nuo švarių PowerPoint skaidrių. Vykdykite šias instrukcijas, kad ištrintumėte rašiklio ir žymeklio piešinius: Trinti linijas po vieną […]

Stilių bibliotekos turinys „SharePoint 2010“.

Stilių bibliotekos turinys „SharePoint 2010“.

Stilių bibliotekoje yra CSS failų, XSL (Extensible Stylesheet Language) failų ir vaizdų, naudojamų iš anksto nustatytų puslapių puslapiuose, puslapių išdėstymuose ir valdikliuose „SharePoint 2010“. Norėdami rasti CSS failus publikavimo svetainės stilių bibliotekoje: pasirinkite Svetainės veiksmai → Peržiūrėti Visas svetainės turinys. Pasirodo svetainės turinys. Stiliaus biblioteka yra […]

Formatuokite skaičius tūkstančiais ir milijonais „Excel“ ataskaitose

Formatuokite skaičius tūkstančiais ir milijonais „Excel“ ataskaitose

Neužkraukite savo auditorijos milžiniškais skaičiais. Programoje „Microsoft Excel“ galite pagerinti informacijos suvestinių ir ataskaitų skaitomumą formatuodami skaičius, kad jie būtų rodomi tūkstančiais arba milijonais.

Kaip bendrinti ir stebėti „SharePoint“ svetaines

Kaip bendrinti ir stebėti „SharePoint“ svetaines

Sužinokite, kaip naudoti „SharePoints“ socialinių tinklų įrankius, leidžiančius asmenims ir grupėms bendrauti, bendradarbiauti, bendrinti ir prisijungti.

Kaip konvertuoti datas į Juliano formatus programoje „Excel“.

Kaip konvertuoti datas į Juliano formatus programoje „Excel“.

Julijaus datos dažnai naudojamos gamybos aplinkoje kaip laiko žyma ir greita partijos numerio nuoroda. Šio tipo datos kodavimas leidžia mažmenininkams, vartotojams ir paslaugų agentams nustatyti, kada produktas buvo pagamintas, taigi ir produkto amžių. Julijaus datos taip pat naudojamos programavimo, kariuomenės ir astronomijos srityse. Skirtingi […]

Kaip sukurti „Access“ žiniatinklio programą

Kaip sukurti „Access“ žiniatinklio programą

Galite sukurti žiniatinklio programą naudodami „Access 2016“. Taigi, kas vis dėlto yra žiniatinklio programa? Na, žiniatinklis reiškia, kad jis yra internete, o programa yra tik „programos“ santrumpa. Pasirinktinė žiniatinklio programa yra internetinė duomenų bazės programa, pasiekiama iš debesies naudojant naršyklę. Kuriate ir prižiūrite žiniatinklio programą darbalaukio versijoje […]

Greitosios paleidimo juosta „SharePoint 2010“.

Greitosios paleidimo juosta „SharePoint 2010“.

Daugumoje „SharePoint 2010“ puslapių sparčiojo paleidimo juostoje, esančioje kairėje puslapio pusėje, pateikiamas naršymo nuorodų sąrašas. Greitosios paleidimo juostoje rodomos nuorodos į siūlomą svetainės turinį, pvz., sąrašus, bibliotekas, svetaines ir publikavimo puslapius. Greitojo paleidimo juostoje yra dvi labai svarbios nuorodos: Visas svetainės turinys: […]

Ką reiškia „Excel“ sprendimo klaidų pranešimai?

Ką reiškia „Excel“ sprendimo klaidų pranešimai?

Paprastoms problemoms spręsti „Excel“ sprendėjas paprastai greitai suranda optimalias tikslinės funkcijos „Solver“ kintamųjų reikšmes. Tačiau kai kuriais atvejais „Solver“ turi problemų ieškant „Solver“ kintamųjų reikšmių, optimizuojančių tikslo funkciją. Tokiais atvejais „Solver“ paprastai rodo pranešimą arba klaidos pranešimą, kuriame aprašoma arba aptariama problema, kurią […]