Počítadlo VBA | Jak vytvořit počítadlo v aplikaci Excel VBA? (s příklady)

Počítadlo VBA aplikace Excel

V programu MS Excel existuje různá funkce pro počítání hodnot, ať už jde o řetězec, čísla. Počítání lze provést na základě některých kritérií. Mezi funkce patří Excel, COUNTA, COUNTBLANK, COUNTIF a COUNTIFS. Tyto funkce však nemohou provádět některé úkoly, jako je počítání buněk na základě jejich barvy, počítání pouze tučných hodnot atd. Proto ve VBA vytvoříme počítadlo, abychom mohli pro tyto typy úkolů počítat v aplikaci Excel.

Vytvořme nějaké počítadlo v aplikaci Excel VBA.

Příklady čítače Excel VBA

Tuto šablonu aplikace VBA Counter Excel si můžete stáhnout zde - Šablona aplikace VBA Counter Excel

Níže jsou uvedeny příklady počítadla ve VBA.

Příklad č. 1

Předpokládejme, že máme data jako výše pro 32 řádků. Vytvoříme VBA čítač, který bude počítat hodnoty, které jsou větší než 50 a ještě jeden čítač pro počítání hodnot, které jsou menší než 50. Vytvoříme VBA kód tímto způsobem, aby uživatel mohl mít data pro neomezený počet řádků v aplikaci Excel.

Stejné kroky by byly:

Ujistěte se, že je na  kartě Vývojář viditelná Excel. Chcete-li kartu zviditelnit (pokud ne), postupujte takto:

Klikněte na pásu karet na kartu „Soubor“ a v seznamu vyberte možnost „Možnost“ .

V seznamu vyberte možnost „ Přizpůsobit pás karet“ , zaškrtněte políčko „Vývojář“ a klikněte na OK .

Nyní je karta Vývojář viditelná.

Vložte příkazové tlačítko pomocí příkazu „Vložit“ dostupného ve skupině „Ovládací prvky“ na kartě „Vývojář“ .

Při stisknutí klávesy ALT vytvořte příkazové tlačítko myší. Pokud stále stiskneme klávesu ALT , pak okraje příkazového tlačítka automaticky přecházejí k okraji buněk.

Pravým tlačítkem myši na příkazové tlačítko otevřete kontextové menu (ujistěte se, že je aktivován režim návrhu, jinak nebudeme moci otevřít kontextové menu).

V nabídce vyberte možnost Vlastnosti .

Změňte vlastnosti příkazového tlačítka, tj. Název, Titulek a Písmo atd.

Znovu klepněte pravým tlačítkem myši a v kontextové nabídce vyberte možnost „Zobrazit kód“ .

Editor jazyka je nyní otevřen a ve výchozím nastavení je pro příkazové tlačítko již vytvořen podprogram.

Nyní napíšeme kód. Deklarujeme 3 proměnné. Jeden pro účely smyčky, jeden pro počítání a druhý pro uložení hodnoty pro poslední řádek.

Pomocí kódu vybereme buňku A1 a poté aktuální oblast buňky A1 a poté se dostaneme dolů k poslednímu vyplněnému řádku, abychom získali číslo posledního vyplněného řádku.

Budeme spustit ‚pro‘ smyčku v VBA zkontrolovat hodnoty napsané v buňce A2 na poslední vyplněným buňky ve sloupci A. Zvýšíme hodnotu proměnné 'counter' o 1, pokud je hodnota větší než 50 a změníme barvu písma buňky na 'Blue' a pokud je hodnota menší než 50, pak barva písma buňky bude „Červená“ .

Po kontrole a počítání musíme zobrazit hodnoty. K tomu samému použijeme 'VBA MsgBox'.

Kód:

 Private Sub CountingCellsbyValue_Click () Dim i, counter As Integer Dim lastrow As Long lastrow = Range ("A1"). CurrentRegion.End (xlDown) .Row For i = 2 To lastrow If Cells (i, 1) .Value> 50 Then counter = counter + 1 Cells (i, 1) .Font.ColorIndex = 5 Else Cells (i, 1) .Font.ColorIndex = 3 End If Next i MsgBox "Existují hodnoty" & counter & ", které jsou větší než 50" & _ vbCrLf & „Existují“ & lastrow - counter & „hodnoty, které jsou menší než 50“ End Sub 

Deaktivujte „návrhový režim“ a klikněte na „příkazové tlačítko“ . Výsledek by byl následující.

Příklad č. 2

Předpokládejme, že chceme vytvořit počítadlo času pomocí aplikace Excel VBA takto:

Pokud klikneme na tlačítko „Start“ , časovač se spustí a pokud klikneme na tlačítko „Stop“ , časovač se zastaví.

Stejné kroky by byly:

Vytvořte takový formát v listu aplikace Excel.

Změňte formát buňky A2 jako „hh: mm: ss“ .

Sloučte buňky C3 až G7 pomocí příkazu Sloučit a vycentrovat Excel  ve skupině Zarovnání na kartě Domů .

Zadejte odkaz na buňku A2 pro právě sloučenou buňku a poté proveďte formátování, jako je například vytvoření stylu písma na „Baskerville“ , velikost písma na 60 atd.

Vytvořte dvě příkazová tlačítka „Start“ a „Stop“ pomocí příkazu „Vložit“ dostupného ve skupině „Ovládací prvky“ na kartě „Vývojář“ .

Pomocí příkazu „Vlastnosti“ dostupného ve skupině „Ovládací prvky“ na kartě „Vývojář“ změňte vlastnosti.

Postupně vyberte tlačítka příkazů a vyberte příkaz „Zobrazit kód“ ze skupiny „Ovládací prvky“ na kartě „Vývojář“, abyste mohli napsat kód následujícím způsobem.

Vyberte z rozevíracího seznamu příslušné příkazové tlačítko.

Vložte modul do „ThisWorkbook“ kliknutím pravým tlačítkem na „Thisworkbook“ a poté zvolte „Insert“ a poté „Module“ .

Napište následující kód do modulu.

Kód:

 Sub start_time () Application.OnTime Now + TimeValue ("00:00:01"), "next_moment" End Sub Sub end_time () Application.OnTime Now + TimeValue ("00:00:01"), "next_moment",, False End Sub Sub next_moment () If Worksheets ("Time Counter"). Range ("A2"). Value = 0 Then Exit Sub Worksheets ("Time Counter"). Range ("A2"). Value = Worksheets ("Time Počítadlo "). Rozsah (" A2 "). Hodnota - TimeValue (" 00:00:01 ") start_time End Sub 

Použili jsme metodu ' onTime ' objektu Application , která se používá ke spuštění procedury v naplánovaném čase. Procedura, kterou jsme plánovali spustit, je „next_moment“ .

Uložte kód. Napište čas do buňky A2 a kliknutím na tlačítko „Start“ spusťte počítadlo času.

Příklad č. 3

Předpokládejme, že máme seznam studentů spolu se známkami, které zaznamenali. Chceme spočítat počet studentů, kteří uspěli a kteří neuspěli.

Abychom udělali totéž, napíšeme kód VBA.

Kroky by byly:

Otevřete editor jazyka Visual Basic stisknutím klávesové zkratky v aplikaci Excel Alt + F11 a poklepáním na „List3 (Počítání počtu studentů)“ vložíte podprogram založený na události v Listu3.

Z rozbalovací nabídky vyberte možnost „List“ .

Jak vybereme ze seznamu „List“ , vidíme, že v sousední rozevírací nabídce jsou různé události. Musíme vybrat ze seznamu „SelectionChange“ .

Deklarujeme proměnnou VBA 'lastrow' pro ukládání čísla posledního řádku, protože seznam studentů se může zvýšit, 'pass' pro uložení počtu studentů, kteří prošli, a 'fail' pro uložení počtu studentů, kteří neuspěli.

Uložíme hodnotu čísla posledního řádku do 'lastrow'.

Vytvoříme smyčku 'pro' pro počítání na základě podmínky.

Nastavili jsme podmínku, pokud jsou celkové známky větší než 99, pak přidejte hodnotu 1 do proměnné „projít“ a přidejte 1 hodnotu do proměnné „selhat“, pokud podmínka selže.

Poslední prohlášení označuje nadpis „Shrnutí“ tučně.

Chcete-li tisknout hodnoty v listu, kód by byl:

Kód:

 Soukromý dílčí list_SelectionChange (cíl ByVal jako rozsah) Dim lastrow jako long dim pass as Integer Dim fail as Integer lastrow = Range ("A1"). CurrentRegion.End (xlDown) .Row For i = 2 To lastrow If Cells (i, 5 )> 99 Pak pass = pass + 1 Else fail = fail + 1 End If Cells (1, 7) .Font.Bold = True Next i Range ("G1"). Value = "Summary" Range ("G2"). Hodnota = "Počet studentů, kteří uspěli, je" & předat rozsah ("G3"). Hodnota = "Počet studentů, kteří neuspěli, je" & selhat End Sub 

Nyní, kdykoli dojde ke změně výběru, budou hodnoty vypočítány znovu, jak je uvedeno níže:

Věci k zapamatování

  1. Uložte soubor po napsání kódu ve VBA s příponou .xlsm Excel, jinak makro nebude fungovat.
  2. Použijte smyčku 'Pro', pokud je již rozhodnuto, kolikrát bude spuštěn kód ve smyčce VBA.

$config[zx-auto] not found$config[zx-overlay] not found