Žemiau yra devyni patarimai, kaip rašyti VBA „Excel“. „VBA for Excel“ pristato daugybę pasirinktinių skaičiavimų ir automatizavimo galimybių. Dažnai kodas gali sudaryti šimtus ar net tūkstančius eilučių. Didėjant kodo sudėtingumui ir dydžiui, tampa vis svarbiau parašyti greitą ir efektyvų kodą, kurį lengvai supranta kolegos. Tai padarę, jūs būsite neįkainojamas turtas savo komandai palaikant ir plėtojant „Excel VBA“ modelius. VBA programoje „Excel“ VBA yra „Visual Basic for Application“ santrumpa. VBA yra programavimo kalba, kurią sukūrė "Microsoft Corp.", ir ji yra integruota į.
1. Pakomentuokite savo kodą, kad būtų lengviau skaityti
Ar jūs kada nors atidarėte kolegos VBA modelį ir kitą valandą bandėte išsiaiškinti, ką tiksliai darė jų kodas? Atsižvelgdami į tai, įsivaizduokite, kaip profesionaliai atrodytumėte, jei jūsų kodas būtų visiškai aiškus visiems, kurie jį skaitė, net jei nebuvote ten, kad paaiškintumėte.
Komentarų rašymas yra svarbiausias VBA kodo rašymo elementas, kuris užtikrins, kad kelis mėnesius lengvai suprasite savo kodą. Jūs taip pat sužavėsite kolegas ir greitai įgysite reputaciją rengdami puikius dokumentus, taip sutrumpindami mokymų laiką būsimiems vartotojams.
2. Pavadinkite kintamuosius ir funkcijas naudodami aiškius ir tinkamus pavadinimus
Parašę aiškiai interpretuojamus VBA kintamųjų ir funkcijų pavadinimus, vartotojai sutaupys daug laiko ir leis jiems aiškiai sekti jūsų kodo struktūrą ir eigą. Kintamieji ar funkcijų pavadinimai, pvz., „Test1“ arba „pirmasis_integeris“, sukels begalę galvos skausmo tiems, kurie bando perskaityti jūsų VBA kodą.
Žemiau pateikiama tvarka įkelia JAV infliacijos lygį į aktyvų langelį, jei jis yra. Atkreipkite dėmesį, kiek aiškesnis yra antrasis pavyzdys nei pirmasis.
Blogas pavyzdys:
Geras pavyzdys:
3. Suplanuokite savo darbą, kad padėtumėte sukurti paprastą, efektyvų VBA kodą
Neretai įpusėjus rašyti kodo projektą suprantama, kad turėtum jį struktūrizuoti kitaip arba sukurti atskirą funkciją konkretiems kodo elementams. Suplanavę savo VBA struktūrą, ką norite pasiekti, kokių kilpų jums reikės ir pan., Sutaupysite laiko ilgainiui. Tai taip pat suteikia laiko pagalvoti apie galimas klaidas, kurios gali kilti kelyje, ir kaip jūs planuojate jas spręsti.
4. Naudokite makrokomandas, kad greitai išsiaiškintumėte sintaksę
Daugumai žmonių makrokomandos suteikia pirmą žvilgsnį į VBA ir kodavimo pasaulį. Net patyrusiems programuotojams makrokomandos yra puikus būdas greitai suprasti VBA sintaksę, reikalingą tam tikrai funkcijai ar metodui vykdyti.
Tarkime, kad nežinojai, kaip išsaugoti failą naudojant VBA. Paspaudę Įrašyti makrokomandą, galite atlikti veiksmus rankiniu būdu, o VBA redaktorius tuos veiksmus įrašys į kodą. Magija! Dabar galite pakartotinai naudoti ir pritaikyti kodą savo įprastoje tvarkoje.
5. Išmokite rašyti savo kodą; nepasikliaukite makrokomandomis!
Kaip minėta pirmiau, makrokomandos nepaprastai padeda sužinoti, kaip rašomi tam tikri kodo fragmentai. Tačiau svarbu pripažinti, kad makrokomandos iš esmės yra nepatikimos ir nėra tinkamos ateičiai, nes yra sunkiai koduojamos ir negali prisitaikyti prie būsimų darbalapio struktūros pokyčių.
Tarkime, kad įrašėte makrokomandą, kuri atlieka įvairius jūsų darbalapio formatavimo pakeitimus. Iš dalies per kodą jis pasirenka I stulpelį ir tada jį ištrina. Tarkime, kad kitą mėnesį faile yra papildomas stulpelis; dabar jūsų makrokomanda ištrins netinkamą stulpelį. Išmokę koduoti patys, galėsite sukurti kilpas ir ieškoti teisingo stulpelio prieš teisingai jį ištrindami.
6. Norėdami išvengti trūkstamų reikšmių, naudokite „Explicit“ parinktį
VBA kodo modulio pradžioje naudojimas „Aiškus variantas“ yra vertingas būdas išvengti rašybos klaidų kode.
Kairiajame žemiau pateiktame pavyzdyje parinktis „Explicit“ nėra įgalinta. Kodas veikia be klaidų, tačiau visada pateikia atsakymą į nulį. Kodėl? Priežastis ta, kad kintamasis MonthIncme parašytas neteisingai, todėl nieko nenurodo. Niekas, padalytas iš kažko, visada yra nulis.
Paleidus antrojo pavyzdžio kodą, „Explicit“ parinktis aptinka, kad kode nenustatėme kintamųjų, ir pateikia kompiliavimo klaidą. Tai pabrėžia nedeklaruotą kintamąjį ir informuoja mus apie problemą. Kiekvieno kodo modulio viršuje prieš bet kurią savo tvarką visada turėtumėte naudoti „Option Explicit“.
7. Pagerinkite greitį, kad objektų pasirinkimas būtų kuo mažesnis
Jei dar nesinaudojote VBA ir įdomu, kodėl jūsų kodas veikia labai lėtai, pagrindinis įtarimas yra per didelis „.Select“ metodo naudojimas. Reikėtų vengti objekto pasirinkimo, nebent tai yra absoliučiai būtina, ypač kai reikalingas didelis duomenų kiekis ar kilpos. Objektų pasirinkimas VBA yra neįtikėtinai lėtas ir paprastai nėra būtinas. Įrašytose makrokomandose dažnai yra daug .Pasirinkite metodus, todėl svarbu išmokti jų išvengti.
Pirmame žemiau pateiktame pavyzdyje bandome surasti iš viso 1000 langelių, esančių mūsų darbalapyje. Kiekvieną kartą, kai mes nurodome naują langelį, mes jį pasirenkame ir tada imame jo vertę. Tačiau lapo ar langelio parinkti visiškai nereikia. Paprasčiausiai galime gauti ląstelių vertę. Laikmatis buvo naudojamas užrašyti laiką, reikalingą kiekvienai rutinai vykdyti, antrasis pavyzdys buvo 50 kartų greitesnis!
8. Norėdami sutaupyti laiko, pakartotinai naudokite įprastas funkcijas
Vienoje vietoje laikant dažniausiai pasitaikančias VBA rutinas (sub-protokolus) yra patogu sumažinti laiką, kurį praleidžiate koduodami ar kurdami modelį. Pateikiame pavyzdį iš mūsų straipsnio „10 geriausių VBA įpročių“, kuriame paimamos pasirinktos langelės, jas sujungiama ir kiekvienai langelei taikomos tos pačios antraštės. Jūs netgi galite priskirti makrokomandos spartųjį klavišą, kad jį būtų lengva naudoti.
Ieškokite mūsų tinklaraščio apie pakartotinį kodo naudojimą (netrukus pasirodysime), kuriame daugiausia dėmesio bus skiriama priedams ir asmeninio kodo moduliams.
9. Reguliariai tikrinkite kodą, kad išvengtumėte vykdymo laiko klaidų
Aukščiau pateiktas patarimas tikriausiai tinka daugumai darbų darbe, tačiau jis ypač svarbus koduojant ir todėl „VBA for Excel“. Išbandžius kodą užtikrinama, kad bus aptiktos klaidos ir klaidos, o vykdymo metu galinčios atsirasti išimtys gali būti užfiksuotos tinkamai sugavus klaidas (žr. Mūsų straipsnį apie VBA klaidas čia. „Excel“ skirtų „VBA“ klaidų tipai klaidos VBA. Žemiau mes siūlome keletą strategijų, kaip jas spręsti ir išspręsti. Mes tai atliksime).
Testavimas turėtų prasidėti nuo jūsų, kaip kodo kūrėjo. Turėtumėte išbandyti patį kodą ir tada išbandyti jį negyvenamoje ar nepaveikiamoje aplinkoje.
Kai tuo patenkinsite, turėtumėte leisti kolegai išbandyti jūsų „Excel“ modelį, geriausia, visiškai neduodant jokių užuominų, kokius mygtukus jie turėtų spausti ar kokius įvestis jie turėtų įvesti. Jūsų modelis turėtų kalbėti už save. Testas gerai parodys, kas nutiks, kai jūsų kodas bus paskelbtas.
Papildomi resursai
Dėkojame, kad perskaitėte mūsų patarimus, kaip rašyti VBA „Excel“. Finansai yra oficialus pasaulinio sertifikuoto bankų ir kreditų analitiko (CBCA) ™ CBCA ™ sertifikavimo teikėjas. Atestuota bankų ir kreditų analitikų (CBCA) ™ akreditacija yra pasaulinis kredito analitikų standartas, apimantis finansus, apskaitą, kredito analizę, pinigų srautų analizę. , sandorio modeliavimas, paskolos grąžinimas ir kt. sertifikavimo programa, skirta padėti visiems tapti pasaulinio lygio finansų analitikais. Norėdami toliau siekti karjeros, naudingi toliau nurodyti papildomi finansų ištekliai:
- Finansinio modeliavimo patarimai
- Kaip derinti kodą (VBA) VBA: kaip derinti kodą Rašant ir vykdant VBA kodą, vartotojui svarbu išmokti derinti kodo klaidas. Tai yra „Excel“ vartotojo lūkesčiai, kad kodas
- Interviu patarimai - kaip gerai interviu Interviu patarimai - kaip gerai interviu Šis vadovas suteiks jums 10 geriausių interviu patarimų sąrašą, pagrįstą dešimtmečių finansų komandos patirtimi iš pirmų rankų, apklausus šimtus kandidatų. Nesvarbu, ar esate savo ankstyvoje, ar vidurio, ar vėlyvoje karjeroje, interviu visada gali varginti. Laimei, gerai pasiruošęs
- VBA: Sub vs Function VBA: Sub vs Function Šiame straipsnyje aptarsime pagrindinius „sub vs“ funkcijos skirtumus. Abi yra komandų rinkiniai, naudojami atliekant konkrečias užduotis