4 chyby, ktorým sa treba vyhnúť pri programovaní makier Excelu pomocou VBA

4 chyby, ktorým sa treba vyhnúť pri programovaní makier Excelu pomocou VBA

Microsoft Excel je už schopný nástroj na analýzu údajov, ale so schopnosťou automatizovať opakujúce sa úlohy pomocou makier napísaním jednoduchého kódu v jazyku Visual Basic for Applications (VBA) je oveľa výkonnejší. Nesprávne používané VBA však môže spôsobovať problémy.





Aj keď nie ste programátor, VBA ponúka jednoduché funkcie, ktoré vám umožňujú pridať do tabuliek pôsobivú funkcionalitu.





Nezáleží na tom, či ste guru VBA, ktorý vytvára dashboardy v Exceli, alebo ste nováčik v písaní jednoduchých skriptov, ktoré robia základné bunkové výpočty. Postupujte podľa týchto jednoduchých programovacích techník a naučte sa písať čistý kód bez chýb.





Začíname s VBA

VBA pre vás dokáže urobiť všetky druhy úhľadných vecí. Od písania makier, ktoré upravujú listy, do odosielanie e -mailov z tabuľky programu Excel pomocou skriptov VBA existuje len veľmi málo obmedzení vašej produktivity.

Ak ste predtým neprogramovali vo VBA v Exceli, budete musieť vo svojom programe Excel povoliť nástroje pre vývojárov. Dobrou správou je, že povolenie nástrojov pre vývojárov je v skutočnosti veľmi jednoduché. Len choď do Súbor > možnosti a potom Prispôsobte stuhu . Stačí presunúť Vývojár karta z ľavého panela doprava.



Uistite sa, že je začiarkavacie políčko pre túto kartu povolené a teraz sa v ponuke programu Excel zobrazí karta Vývojár.

Najjednoduchší spôsob, ako sa odtiaľto dostať do okna editora kódu, je kliknúť na Zobraziť kód tlačidlo pod Ovládacie prvky v ponuke Vývojár.





Teraz ste pripravení napísať kód VBA! Na tejto karte budete mať prístup aj k VBA nahrávanie makier v programe Excel . Teraz, keď je program Excel pripravený pracovať, pozrime sa na niektoré bežné chyby, ktorým sa treba vyhnúť, a spôsoby, ako im predchádzať.

1. Hrozné názvy premenných

Teraz, keď ste v okne kódu, je čas začať písať kód VBA. Prvým dôležitým krokom vo väčšine programov, či už je to vo VBA alebo v inom jazyku, je definovanie vašich premenných. Nesprávne pomenovanie premenných je jednou z najčastejších chýb programovania, ktorých sa noví vývojári dopúšťajú.





čo robí kompresia súboru

Počas svojich desaťročí písania kódu som narazil na mnoho myšlienkových smerov, pokiaľ ide o konvencie pomenovania premenných, a ťažko som sa naučil niekoľko pravidiel. Tu je niekoľko rýchlych tipov na vytváranie názvov premenných:

  • Urobte ich čo najkratšie.
  • Urobte ich čo najpresnejšie.
  • Predhovorte ich typom premennej (boolovská hodnota, celé číslo atď. ...).

Tu je ukážka obrazovky z programu, ktorý často používam na telefonovanie WMIC Windows z Excelu na zhromažďovanie informácií o počítači.

Ak chcete použiť premenné vo funkcii v rámci modulu alebo objektu (vysvetlím to nižšie), musíte to deklarovať ako „verejnú“ premennú tak, že deklaráciu uvediete pred Verejné . V opačnom prípade budú premenné deklarované tak, že ich postavíte pred slovo Žiadny .

Ako vidíte, ak je premenná celé číslo, pred ním je znak int . Ak je to reťazec, potom p . Toto je osobná preferencia, ktorá vám pomôže neskôr pri programovaní, pretože podľa názvu vždy budete vedieť, aký typ údajov premenná obsahuje.

Nezabudnite tiež pomenovať listy vo svojom zošite programu Excel.

Týmto spôsobom, keď odkazujete na názov hárka v kóde programu Excel VBA, odkazujete na názov, ktorý dáva zmysel. V uvedenom príklade mám list, do ktorého vložím informácie o sieti, a preto ho nazývam „Sieť“. Kedykoľvek sa chcem obrátiť na hárok siete, môžem to urobiť rýchlo bez toho, aby som zistil, aké je číslo hárka.

2. Zlomenie namiesto slučkovania

Jeden z najčastejších problémov, s ktorými sa novší programátori VBA stretávajú, keď začínajú písať kód, je správne narábanie so slučkami.

V programe Excel je cyklovanie veľmi bežné, pretože často spracovávate hodnoty údajov v celom riadku alebo stĺpci, takže na ich spracovanie musíte použiť cyklus.

Noví programátori sa často chcú okamžite vymaniť zo slučky (VBA pre slučky alebo VBA do cyklu), keď je splnená určitá podmienka.

Tu je príklad tejto metódy, ktorá sa používa na prerušenie slučky VBA.

For x = 1 To 20
If x = 6 Then Exit For
y = x + intRoomTemp
Next i

Noví programátori používajú tento prístup, pretože je to jednoduché. Pokúste sa vyhnúť výslovnému prerušeniu slučky.

Často je dôležité spracovať kód, ktorý príde po tejto „prestávke“. Oveľa čistejší a profesionálnejší spôsob, ako zvládnuť podmienky, v ktorých chcete v polovici cesty zanechať slučku, je zahrnúť túto podmienku ukončenia do niečoho, ako je vyhlásenie VBA While.

While (x>=1 AND x<=20 AND x6)
For x = 1 To 20
y = x + intRoomTemp
Next i
Wend

To umožňuje logický tok vášho kódu. Teraz sa kód bude opakovať a zastaví sa, keď dosiahne 6. Nie je potrebné zahrnúť do strednej slučky trápne príkazy EXIT alebo BREAK.

3. Nepoužívanie polí

Ďalšou zaujímavou chybou, ktorú robia noví programátori VBA, je pokúšať sa spracovať všetko vo vnútri mnohých vnorených slučiek, ktoré počas procesu výpočtu filtrujú nadol cez riadky a stĺpce.

To môže tiež viesť k veľkým problémom s výkonom. Opakovanie v stĺpci a extrahovanie hodnôt zakaždým je zabijakom vášho procesora. Efektívnejším spôsobom, ako zvládnuť dlhé zoznamy čísel, je využiť pole.

Ak ste pole nikdy predtým nepoužívali, nebojte sa. Predstavte si pole ako podnos na kocky ľadu s určitým počtom „kociek“, do ktorých môžete vkladať informácie. Kocky sú očíslované od 1 do 12 a takto do nich „vkladáte“ údaje.

Pole môžete jednoducho definovať zadaním Dim arrMyArray (12) ako celé číslo .

budú hry ps3 fungovať na ps4

Vytvorí sa tak „zásobník“ s 12 slotmi, ktoré je možné vyplniť.

Takto môže vyzerať kód slučky riadkov bez poľa:

Sub Test1()
Dim x As Integer
intNumRows = Range('A2', Range('A2').End(xldown)).Rows.Count
Range('A2').Select
For x = 1 To intNumRows
If Range('A' & str(x)).value <100 then
intTemp = (Range('A' & str(x)).value) * 32 - 100
End If
ActiveCell.Offset(1, 0).Select
Next
End Sub

V tomto prípade kód spracováva všetky bunky v rozsahu a vykonáva výpočet teploty.

Ak by ste niekedy chceli vykonať iný výpočet na rovnakých hodnotách, proces by bol neohrabaný. Budete musieť duplikovať tento kód, spracovať všetky tieto bunky a vykonať nový výpočet. Všetko pre jednu zmenu!

Tu je lepší príklad pomocou poľa. Najprv vytvoríme pole.

Sub Test1()
Dim x As Integer
intNumRows = Range('A2', Range('A2').End(xldown)).Rows.Count
Range('A2').Select
For x = 1 To intNumRows
arrMyArray(x-1) = Range('A' & str(x)).value)
ActiveCell.Offset(1, 0).Select
Next
End Sub

The x-1 ukazovanie na prvok poľa je potrebné iba preto, že slučka For začína na 1. Prvky poľa musia začínať na 0.

Teraz, keď máte pole, je veľmi jednoduché spracovať obsah.

Sub TempCalc()
For x = 0 To UBound(arrMyArray)
arrMyTemps(y) = arrMyArray(x) * 32 - 100
Next
End Sub

Tento príklad prechádza celým poľom riadkov ( UBound vám poskytne počet hodnôt v poli), vykoná výpočet teploty a potom ho vloží do iného poľa s názvom arrMyTemps .

4. Používanie príliš veľkého počtu referencií

Či už programujete v plnohodnotnom jazyku Visual Basic alebo VBA, na prístup k niektorým funkciám budete potrebovať „referencie“.

Referencie sú niečo ako „knižnice“ plné funkcií, ktoré môžete využiť, ak daný súbor povolíte. Referencie nájdete v zobrazení Vývojár kliknutím na Nástroje v ponuke a potom kliknite na Referencie .

V tomto okne nájdete všetky aktuálne vybrané referencie pre váš aktuálny projekt VBA.

Tento zoznam by ste mali skontrolovať, pretože zbytočné referencie môžu plytvať systémovými prostriedkami. Ak nepoužívate žiadne manipulácie so súbormi XML, tak prečo nechávať vybraté Microsoft XML? Ak nekomunikujete s databázou, odstráňte Microsoft DAO atď.

Ak si nie ste istí, čo tieto vybraté referencie robia, stlačte F2 a uvidíte Prieskumníka objektov. V hornej časti tohto okna si môžete vybrať referenčnú knižnicu, ktorú chcete prehľadávať.

Po vybratí sa vám zobrazia všetky objekty a dostupné funkcie, o ktorých sa môžete kliknutím dozvedieť viac.

Keď napríklad kliknem na knižnicu DAO, rýchlo mi je jasné, že ide iba o pripojenie k databázam a komunikáciu s nimi.

Zníženie počtu referencií, ktoré používate vo svojom programovacom projekte, má dobrý zmysel a pomôže zefektívniť chod celej vašej aplikácie.

ako určiť základnú dosku Windows 10

Programovanie v programe Excel VBA

Celá myšlienka skutočne písať kód v programe Excel desí veľa ľudí, ale tento strach skutočne nie je potrebný. Visual Basic for Applications je veľmi jednoduchý jazyk na osvojenie a ak budete postupovať podľa základných bežných postupov uvedených vyššie, zaistíte, aby bol váš kód čistý, efektívny a zrozumiteľný.

Nezastavujte sa tam však. Vybudujte si pevný základ zručností Excelu pomocou a VBA návod pre začiatočníkov . Potom sa neustále učte o VBA a makrách so zdrojmi, ktoré vám pomôžu automatizovať vaše tabuľky.

zdieľam zdieľam Tweet E -mail Oplatí sa upgradovať na Windows 11?

Windows bol prepracovaný. Stačí to však na to, aby ste sa presvedčili o prechode z Windows 10 na Windows 11?

Čítajte ďalej
Súvisiace témy
  • Produktivita
  • Programovanie
  • Programovanie
  • Programovanie v jazyku Visual Basic
  • Microsoft Excel
O autorovi Anthony Grant(40 publikovaných článkov)

Anthony Grant je nezávislý autor, ktorý sa zaoberá programovaním a softvérom. Je odborníkom v oblasti informatiky, ktorý sa zaoberá programovaním, programom Excel, softvérom a technológiami.

Viac od Anthonyho Granta

prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu a získajte technické tipy, recenzie, bezplatné elektronické knihy a exkluzívne ponuky!

Kliknutím sem sa prihlásite na odber