Výučba pre začiatočníkov o písaní makier VBA v programe Excel (a prečo by ste sa mali učiť)

Výučba pre začiatočníkov o písaní makier VBA v programe Excel (a prečo by ste sa mali učiť)

Makrá Excel vám môžu ušetriť veľa času automatizácia často používaných procesov Excelu . Makrá sú však v skutočnosti dosť obmedzené. S nástrojom na záznam je ľahké urobiť chybu a proces nahrávania je nepríjemný.





Použitie VBA na vytváranie makier vám poskytne oveľa väčšiu silu. Môžete presne povedať, čo má Excel robiť a ako to robiť. Získate tiež prístup k mnohým ďalším funkciám a možnostiam. Ak pravidelne používate Excel, stojí za to naučiť sa vytvárať makrá VBA.





Začneme od základov.





Čo je to VBA?

VBA je Visual Basic pre aplikácie , programovací jazyk, ktorý môžete použiť v mnohých aplikáciách spoločnosti Microsoft. Visual Basic je programovací jazyk a VBA je jeho verzia pre konkrétnu aplikáciu. (Spoločnosť Microsoft ukončila Visual Basic v roku 2008, ale VBA je stále silná).

Našťastie pre neprogramátorov je VBA veľmi jednoduchý a rozhranie, ktoré používate na jeho úpravu, ponúka veľa pomoci. Mnoho príkazov, ktoré použijete, ponúka vyskakovacie návrhy a automatické dokončovania, ktoré vám pomôžu rýchlo pracovať s vašim skriptom.



Napriek tomu si VBA chvíľu zvyká.

Výhody makier VBA v programe Excel

Ak je VBA ťažšie ako nahrávanie makra, prečo by ste ho používali? Krátka odpoveď je, že z makier VBA získate oveľa viac energie.





Namiesto klikania na tabuľku a zaznamenávania týchto kliknutí máte prístup k celému radu funkcií a možností programu Excel. Musíte len vedieť, ako ich používať.

vytvorte si vlastné bodky

Akonáhle vám bude VBA viac vyhovovať, môžete vykonávať všetky činnosti, ktoré by ste mohli robiť v bežnom makre, za oveľa kratší čas. Výsledky budú tiež predvídateľnejšie, pretože hovoríte Excelu presne tak čo robiť. Vôbec nie je žiadna nejednoznačnosť.





Keď vytvoríte svoje makro VBA, je ľahké ho uložiť a zdieľať, aby ho mohol využiť ktokoľvek iný. To je obzvlášť užitočné, keď pracujete s veľkým počtom ľudí, ktorí potrebujú robiť tie isté veci v programe Excel.

Pozrime sa na jednoduché makro VBA, aby sme zistili, ako funguje.

Príklad makra VBA v programe Excel

Pozrime sa na jednoduché makro. Naša tabuľka obsahuje mená zamestnancov, číslo obchodu, kde zamestnanci pracujú, a ich štvrťročné tržby.

Toto makro pridá štvrťročné tržby z každého obchodu a zapíše ich do buniek v tabuľke (ak si nie ste istí, ako sa dostať do dialógu VBA, pozrite sa na náš návod VBA tu ):

Sub StoreSales()
Dim Sum1 As Currency
Dim Sum2 As Currency
Dim Sum3 As Currency
Dim Sum4 As Currency
For Each Cell In Range('C2:C51')
Cell.Activate
If IsEmpty(Cell) Then Exit For
If ActiveCell.Offset(0, -1) = 1 Then
Sum1 = Sum1 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 2 Then
Sum2 = Sum2 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 3 Then
Sum3 = Sum3 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 4 Then
Sum4 = Sum4 + Cell.Value
End If
Next Cell

Range('F2').Value = Sum1
Range('F3').Value = Sum2
Range('F4').Value = Sum3
Range('F5').Value = Sum4

End Sub

Môže to vyzerať dlho a komplikovane, ale rozoberieme to, aby ste videli jednotlivé prvky a dozvedeli sa niečo o základoch VBA.

Vyhlásenie sub

Na začiatku modulu máme „Sub StoreSales ()“. Toto definuje novú podsekciu s názvom StoreSales.

Môžete tiež definovať funkcie --- rozdiel je v tom, že funkcie môžu vracať hodnoty a podmnožiny nie (ak poznáte iné programovacie jazyky, sú čiastky ekvivalentom metód). V tomto prípade nepotrebujeme vracať hodnotu, preto používame podpoložku.

Na konci modulu máme „End Sub“, ktorý programu Excel hovorí, že sme s týmto makrom VBA skončili.

Deklarácia premenných

Prvé riadky kódu v našom skripte začínajú na „Dim“. Dim je príkaz VBA na deklarovanie premennej.

„Dim Sum1“ teda vytvorí novú premennú s názvom „Sum1“. Musíme však programu Excel povedať, o aký druh premennej ide. Musíme si vybrať typ údajov. Vo VBA existuje mnoho rôznych dátových typov --- nájdete úplný zoznam v dokumentoch pomoci spoločnosti Microsoft .

Pretože sa naše makro VBA bude zaoberať menami, používame typ údajov Mena.

Príkaz „Dim Sum1 as Currency“ hovorí Excelu, aby vytvoril novú premennú meny s názvom Sum1. Každá premenná, ktorú deklarujete, musí mať príkaz „As“, ktorý programu Excel oznámi jej typ.

Začíname so slučkou For Loop

Smyčky sú niektoré z najsilnejších vecí, ktoré môžete vytvoriť v akomkoľvek programovacom jazyku. Ak nie ste oboznámení so slučkami, pozrite sa na toto vysvetlenie slučiek Do-While. V tomto prípade používame slučku For, ktorá je tiež zahrnutá v článku.

Takto slučka vyzerá:

For Each Cell in Range('C2:C51')
[a bunch of stuff]
Next Cell

To hovorí Excelu, aby iteroval cez bunky v rozsahu, ktorý sme uviedli. Použili sme a Objekt dosahu , čo je špecifický typ objektu vo VBA. Keď to použijeme takto --- Rozsah ('C2: C51') ---, povie to Excelu, že nás zaujíma týchto 50 buniek.

„Za každého“ programu Excel hovorí, že s každou bunkou v rozsahu urobíme niečo. „Nasledujúca bunka“ nasleduje po všetkom, čo chceme urobiť, a hovorí Excelu, aby začal cyklus od začiatku (začínajúc ďalšou bunkou).

Máme tiež toto tvrdenie: „Ak je prázdna (bunka), potom pre ňu ukončite“.

Môžete hádať, čo to robí?

Poznámka: Presne povedané, použitie slučky While bolo možno lepšou voľbou . Avšak kvôli výučbe som sa rozhodol použiť slučku For with Exit.

spustenie počítača Windows 10 trvá večnosť

Príkazy if-then-else

Jadro tohto konkrétneho makra je v príkazoch If-Then-Else. Tu je naša postupnosť podmienených príkazov:

If ActiveCell.Offset(0, -1) = 1 Then
Sum1 = Sum1 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 2 Then
Sum2 = Sum2 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 3 Then
Sum3 = Sum3 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 4 Then
Sum4 = Sum4 + Cell.Value
End If

Väčšinou môžete pravdepodobne hádať, čo tieto vyhlásenia robia. Možno však nepoznáte ActiveCell.Offset. „ActiveCell.Offset (0, -1)“ hovorí Excelu, aby sa pozrel na bunku, ktorá je o jeden stĺpček naľavo od aktívnej bunky.

V našom prípade to znamená, že Excelu je potrebné nahliadnuť do stĺpca s číslom obchodu. Ak Excel v tomto stĺpci nájde hodnotu 1, zoberie obsah aktívnej bunky a pridá ju do súčtu Sum1. Ak nájde 2, pridá obsah aktívnej bunky k Sum2. A tak ďalej.

Excel prechádza všetkými týmito výpismi v poriadku. Ak podmienečné vyhlásenie je spokojný, dokončí príkaz Then. Ak nie, presunie sa do nasledujúceho ElseIf. Ak sa dostane až do konca a nebude splnená žiadna z podmienok, nepodnikne žiadne kroky.

Toto makro poháňa kombinácia slučky a podmienení. Cyklus hovorí Excelu, aby prešiel každou bunkou vo výbere, a podmienené slová mu hovoria, čo s touto bunkou urobiť.

Zapisovanie hodnôt buniek

Nakoniec sa dostaneme k zapísaniu výsledkov našich výpočtov do buniek. Tu sú riadky, ktoré na to používame:

Range('F2').Value = Sum1
Range('F3').Value = Sum2
Range('F4').Value = Sum3
Range('F5').Value = Sum4

S '.Value' a znamienkom rovnosti nastavíme každú z týchto buniek na hodnotu jednej z našich premenných.

A je to! Hovoríme Excelu, že sme skončili s písaním tohto Sub s „End Sub“, a makro VBA je dokončené.

Keď spustíme makro s príponou Makrá tlačidlo v Vývojár karta, dostaneme naše sumy:

Spojenie stavebných blokov VBA v programe Excel

Keď sa prvýkrát pozriete na makro VBA vyššie, vyzerá to dosť zložito. Ale po rozdelení na jednotlivé časti logika začína byť jasná. Ako každý skriptovací jazyk, zvyknúť si na syntax jazyka VBA trvá nejaký čas.

Praxou si však vybudujete slovník VBA a budete môcť písať makrá rýchlejšie, presnejšie a s oveľa väčším výkonom, ako by ste ich kedy mohli zaznamenať.

Keď sa zaseknete, spustenie vyhľadávania Google je rýchly spôsob, ako získať odpovede na svoje otázky VBA. A Referencia Microsoft Excel VBA môže byť užitočné, ak ste ochotní prekopať ho a získať technickú odpoveď.

Akonáhle sa zoznámite so základmi, môžete začať používať VBA na veci ako odosielanie e -mailov z Excelu , export úloh programu Outlook a zobrazenie informácií o vašom počítači.

môžeš hrať ps3 na ps4
zdieľam zdieľam Tweet E -mail Z tohto dôvodu FBI vydala upozornenie na úľový ransomware

FBI vydala varovanie pred obzvlášť škaredým kmeňom ransomwaru. Tu je dôvod, prečo si musíte dávať pozor predovšetkým na ransomware Hive.

Čítajte ďalej
Súvisiace témy
  • Produktivita
  • Tabuľka
  • Microsoft Excel
  • Microsoft Office 2016
  • Makrá
  • Návody na kódovanie
O autorovi Potom Albright(506 publikovaných článkov)

Dann je konzultant pre stratégiu obsahu a marketing, ktorý pomáha spoločnostiam vytvárať dopyt a potenciálnych zákazníkov. Píše tiež blogy o stratégii a obsahovom marketingu na dannalbright.com.

Viac od Danna Albrighta

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