4 chyby, kterých je třeba se vyvarovat při programování maker aplikace Excel pomocí VBA

4 chyby, kterých je třeba se vyvarovat při programování maker aplikace Excel pomocí VBA

Microsoft Excel je již schopným nástrojem pro analýzu dat, ale se schopností automatizovat opakující se úlohy pomocí maker napsáním jednoduchého kódu v jazyce Visual Basic for Applications (VBA) je mnohem výkonnější. Nesprávně používané VBA však může způsobit problémy.





I když nejste programátor, VBA nabízí jednoduché funkce, které vám umožní přidat do vašich tabulek působivé funkce.





Nezáleží na tom, jestli jste guru VBA, který vytváří dashboardy v Excelu, nebo nováček, který píše jednoduché skripty, které provádějí základní výpočty buněk. Pomocí těchto jednoduchých programovacích technik se naučíte psát čistý kód bez chyb.





Začínáme s VBA

VBA pro vás může udělat všechny druhy úhledných věcí. Od psaní maker, které upravují listy, do odesílání e -mailů z tabulky aplikace Excel pomocí skriptů VBA existuje jen velmi málo limitů vaší produktivity.

Pokud jste ještě neprogramovali ve VBA v Excelu, budete muset v programu Excel povolit nástroje pro vývojáře. Dobrou zprávou je, že povolení nástrojů pro vývojáře je ve skutečnosti docela snadné. Jen jdi do Soubor > Možnosti a pak Přizpůsobte pás karet . Jen přesuňte Vývojář kartu z levého podokna doprava.



Zkontrolujte, zda má zaškrtávací políčko tuto kartu povolenou, a nyní se v nabídce aplikace Excel zobrazí karta Vývojář.

Nejjednodušší způsob, jak se odtud dostat do okna editoru kódu, je jednoduše kliknout na Zobrazit kód tlačítko pod Řízení v nabídce Vývojář.





Nyní jste připraveni napsat kód VBA! Na této kartě budete mít přístup také k VBA nahrávání maker v Excelu . Nyní, když je Excel připraven pracovat, pojďme se podívat na některé běžné chyby, kterým je třeba se vyhnout, a způsoby, jak jim předcházet.

1. Hrozné názvy proměnných

Nyní, když jste v okně kódu, je čas začít psát kód VBA. Prvním důležitým krokem ve většině programů, ať už je to ve VBA nebo v jiném jazyce, je definování vašich proměnných. Nesprávné pojmenování proměnných je jednou z nejčastějších chyb v programování, které dělají noví vývojáři.





jaký je rozdíl mezi písmem otevřeného typu a písmem truetype

Během svých desetiletí psaní kódu jsem narazil na mnoho myšlenkových směrů, pokud jde o konvence pojmenování proměnných, a naučil jsem se pár pravidel tvrdě. Zde je několik rychlých tipů pro vytváření názvů proměnných:

  • Udělejte je co nejkratší.
  • Udělejte je co nejvíce popisnými.
  • Předmluvte je s typem proměnné (boolean, integer, atd ...).

Zde je ukázka obrazovky z programu, který často používám k volání WMIC Windows z Excelu ke shromažďování informací o počítači.

Pokud chcete použít proměnné uvnitř funkce v rámci modulu nebo objektu (vysvětlím to níže), musíte ji deklarovat jako 'veřejnou' proměnnou tím, že deklaraci předřadíte pomocí Veřejnost . Jinak se proměnné deklarují tak, že je předřadíte slovem Žádný .

Jak vidíte, pokud je proměnná celočíselná, je před ní int . Pokud je to řetězec, pak p . Toto je osobní preference, která vám pomůže později při programování, protože podle názvu vždy budete vědět, jaký typ dat proměnná obsahuje.

Nezapomeňte také pojmenovat listy v sešitu aplikace Excel.

Tímto způsobem, když odkazujete na název listu v kódu aplikace Excel VBA, odkazujete na název, který dává smysl. Ve výše uvedeném příkladu mám list, do kterého vložím informace o síti, a proto list nazývám „Síť“. Kdykoli chci odkazovat na síťový list, mohu to udělat rychle, aniž bych musel hledat číslo listu.

2. Zlomení místo smyčky

Jedním z nejčastějších problémů, které novější programátoři VBA mají, když začínají psát kód, je správné řešení smyček.

Smyčka je v Excelu velmi běžná, protože často zpracováváte datové hodnoty po celém řádku nebo sloupci, takže ke zpracování všech potřebujete smyčku.

Noví programátoři se často chtějí okamžitě vymanit ze smyčky (smyčky VBA pro smyčky nebo smyčky VBA Do While), když je splněna určitá podmínka.

Zde je příklad této metody, která se používá k přerušení smyčky VBA.

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

Noví programátoři používají tento přístup, protože je to snadné. Zkuste se vyvarovat výslovného přerušení smyčky.

Častěji než ne je důležité zpracovat kód, který přijde po této „přestávce“. Mnohem čistší a profesionálnější způsob, jak zvládnout podmínky, kdy chcete v polovině nechat smyčku, je zahrnout tuto podmínku ukončení do něčeho jako prohlášení 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 vašeho kódu. Nyní se kód smyčkou protne a zastaví se, jakmile dosáhne 6. Není nutné zahrnovat nešikovné příkazy EXIT nebo BREAK ve střední smyčce.

3. Nepoužívání polí

Další zajímavou chybou, kterou dělají noví programátoři VBA, je snaha zpracovat vše uvnitř mnoha vnořených smyček, které během procesu výpočtu filtrují řádky a sloupce.

To může také vést k velkým problémům s výkonem. Smyčka ve sloupci a extrahování hodnot pokaždé je zabijákem vašeho procesoru. Efektivnější způsob, jak zpracovat dlouhé seznamy čísel, je využít pole.

Pokud jste pole nikdy předtím nepoužívali, nebojte se. Představte si pole jako misku na kostky ledu s určitým počtem „kostek“, do kterých můžete vkládat informace. Kostky jsou očíslovány od 1 do 12 a podle toho do nich „vkládáte“ data.

Pole můžete snadno definovat pouhým zadáním Dim arrMyArray (12) as Integer .

nelze odstranit složku otevřenou v jiném programu Windows 10

Tím vytvoříte „zásobník“ s 12 sloty, které můžete vyplnit.

Zde může vypadat kód smyčky řádků bez pole:

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 příkladu kód zpracovává každou buňku v rozsahu a provádí výpočet teploty.

Pokud byste někdy chtěli provést jiný výpočet na stejných hodnotách, proces by byl neohrabaný. Budete muset duplikovat tento kód, zpracovat všechny tyto buňky a provést nový výpočet. Vše pro jednu změnu!

Zde je lepší příklad pomocí pole. Nejprve vytvoří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 pro ukazování na prvek pole je nutné pouze proto, že smyčka For začíná na 1. Array elements need to start at 0.

Nyní, když máte pole, je velmi jednoduché zpracovat obsah.

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

Tento příklad prochází celým řádkovým polem ( UBound vám poskytne počet datových hodnot v poli), provede výpočet teploty a poté jej vloží do jiného volaného pole arrMyTemps .

4. Používání příliš mnoha referencí

Ať už programujete v plnohodnotném jazyce Visual Basic nebo VBA, pro přístup k určitým funkcím budete muset zahrnout „reference“.

Reference jsou něco jako „knihovny“ plné funkcí, do kterých se můžete dostat, pokud daný soubor povolíte. Reference najdete v zobrazení pro vývojáře kliknutím na Nástroje v nabídce a poté klikněte na Reference .

V tomto okně najdete všechny aktuálně vybrané reference pro váš aktuální projekt VBA.

Tento seznam byste měli zkontrolovat, protože zbytečné odkazy mohou plýtvat systémovými prostředky. Pokud nepoužíváte žádnou manipulaci se soubory XML, proč tedy ponechávat vybrané Microsoft XML? Pokud nekomunikujete s databází, odeberte Microsoft DAO atd.

Pokud si nejste jisti, co tyto vybrané reference dělají, stiskněte F2 a uvidíte Průzkumníka objektů. V horní části tohoto okna můžete vybrat referenční knihovnu, kterou chcete procházet.

Po výběru uvidíte všechny objekty a dostupné funkce, o kterých můžete kliknout, abyste se o nich dozvěděli více.

Když například kliknu na knihovnu DAO, rychle mi bude jasné, že jde o připojení k databázím a komunikaci s nimi.

Snížení počtu referencí, které používáte ve svém programovacím projektu, má jen dobrý smysl a pomůže zefektivnit celkový provoz vaší aplikace.

jakou mám základní desku windows 10

Programování v aplikaci Excel VBA

Celá myšlenka skutečného psaní kódu v Excelu děsí spoustu lidí, ale tento strach opravdu není nutný. Visual Basic for Applications je velmi jednoduchý jazyk na naučení a pokud budete postupovat podle výše uvedených základních běžných postupů, zajistíte, aby byl váš kód čistý, efektivní a snadno srozumitelný.

Nezastavujte se tam však. Vybudujte si pevný základ dovedností Excelu pomocí a VBA tutoriál pro začátečníky . Pak pokračujte v učení o VBA a makrech se zdroji, které vám pomohou automatizovat vaše tabulky.

Podíl Podíl tweet E-mailem Vyplatí se upgradovat na Windows 11?

Windows byl přepracován. Stačí to ale k tomu, abyste vás přesvědčili o přechodu z Windows 10 na Windows 11?

Číst dále
Související témata
  • Produktivita
  • Programování
  • Programování
  • Programování v jazyce Visual Basic
  • Microsoft Excel
O autorovi Anthony Grant(40 článků zveřejněno)

Anthony Grant je autor na volné noze pokrývající programování a software. Je počítačovým vědcem, který se zabývá programováním, Excelem, softwarem a technologiemi.

Více od Anthonyho Granta

Přihlaste se k odběru našeho zpravodaje

Připojte se k našemu zpravodaji a získejte technické tipy, recenze, bezplatné elektronické knihy a exkluzivní nabídky!

Kliknutím sem se přihlásíte k odběru