Počítadlo VBA - Ako vytvoriť počítadlo v programe Excel VBA? (s príkladmi)

Počítadlo Excel VBA

V programe MS Excel existuje rôzna funkcia na počítanie hodnôt, či už je to reťazec, čísla. Počítanie je možné vykonať na základe niektorých kritérií. Medzi funkcie patrí Excel, COUNTA, COUNTBLANK, COUNTIF a COUNTIFS. Tieto funkcie však nemôžu robiť niektoré úlohy, ako je počítanie buniek na základe ich farby, počítanie iba tučných hodnôt atď. Preto vo VBA vytvoríme počítadlo, aby sme mohli pre tieto typy úloh počítať v programe Excel.

Vytvorme nejaké počítadlo v programe Excel VBA.

Príklady počítadla Excel VBA

Ďalej uvádzame príklady počítadla vo VBA.

Príklad č

Predpokladajme, že máme údaje ako vyššie pre 32 riadkov. Vytvoríme počítadlo VBA, ktoré bude počítať hodnoty, ktoré sú väčšie ako 50 a ešte jedno počítadlo, ktoré bude počítať hodnoty, ktoré sú menšie ako 50. Takto vytvoríme kód VBA, aby mohol mať užívateľ dáta pre neobmedzený počet riadkov v programe Excel.

To isté by malo byť:

Uistite sa, že je na karte Vývojár viditeľná položka Excel. Ak chcete kartu zviditeľniť (ak nie), postupujte takto:

Kliknite na kartu „Súbor“ na páse s nástrojmi a v zozname vyberte možnosť „Možnosť“ .

V zozname vyberte možnosť „ Prispôsobiť pásku“ , začiarknite políčko „Developer“ a kliknite na tlačidlo OK .

Teraz je viditeľná karta „Vývojár“ .

Vložte príkazové tlačidlo pomocou príkazu „Vložiť“, ktorý je k dispozícii v skupine „Ovládacie prvky“ na karte „Vývojár“ .

Počas stlačenia klávesu ALT vytvorte myšou príkazové tlačidlo. Ak stále stlačíme kláves ALT , potom okraje príkazového tlačidla idú automaticky s okrajom buniek.

Pravým tlačidlom myši na príkazové tlačidlo otvoríte kontextové menu (uistite sa, že je aktivovaný režim „Design Mode“ ; v opačnom prípade nebudeme môcť otvoriť kontextové menu).

V ponuke vyberte možnosť Vlastnosti .

Zmeňte vlastnosti príkazového tlačidla, tj. Názov, Titulok a Písmo atď.

Znova kliknite pravým tlačidlom myši a z kontextovej ponuky vyberte možnosť „Zobraziť kód“ .

Editor jazyka Visual Basic je teraz otvorený a v predvolenom nastavení je pre príkazové tlačidlo už vytvorený podprogram.

Teraz napíšeme kód. Vyhlásime 3 premenné. Jeden na účely slučky, druhý na počítanie a druhý na uloženie hodnoty pre posledný riadok.

Pomocou kódu vyberieme bunku A1 a potom aktuálnu oblasť bunky A1 a potom sa dostaneme nadol k poslednému vyplnenému riadku, aby sme dostali číslo posledného vyplneného riadku.

Budeme spustiť , pre ' slučku v VBA skontrolovať hodnoty napísané v bunke A2 na poslednú vyplneným bunky v stĺpci A. Ak je hodnota väčšia ako 50, zvýšime hodnotu premennej „counter“ o 1 a zmeníme farbu písma bunky na „Blue“, a ak je hodnota menšia ako 50, potom farba písma bunky bude „červená“.

Po skontrolovaní a spočítaní musíme zobraziť hodnoty. Na to isté 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 & ", ktoré sú väčšie ako 50" & _ vbCrLf & „Existujú hodnoty & & lastrow - counter &“, ktoré sú menšie ako 50 „End Sub

Deaktivujte „návrhový režim“ a kliknite na „príkazové tlačidlo“. Výsledok by bol nasledovný.

Príklad č

Predpokladajme, že chceme vytvoriť počítadlo času pomocou programu Excel VBA nasledovne:

If we click on the ‘Start’ button, the timer starts, and if we click on the ‘Stop’ button, the timer stops.

To do the same, steps would be:

Create a format like this in an excel sheet.

Change the format of the cell A2 as ‘hh:mm: ss.’

Merge the cells C3 to G7 by using the Merge and Center Excel command in the ‘Alignment’ group in the ‘Home’ tab.

Give the reference of cell A2 for just merged cell and then do the formatting like make the font style to ‘Baskerville,’ font size to 60, etc.

Create two command buttons, ‘Start’ and ‘Stop’ using the ‘Insert’ command available in the ‘Controls’ group in the ‘Developer’ tab.

Using the ‘Properties’ command available in the ‘Controls’ group in the ‘Developer’ tab, change the properties.

Select the commands buttons one by one and choose the ‘View Code’ command from the ‘Controls’ group in the ‘Developer’ tab to write the code as follows.

Choose from the drop-down the appropriate command button.

Insert a module into ‘ThisWorkbook‘ by right-clicking on the ‘Thisworkbook’ and then choose ‘Insert’ and then ‘Module.’

Write the following code in the module.

Code:

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 Counter").Range("A2").Value - TimeValue("00:00:01") start_time End Sub

We have used the ‘onTime‘ method of the Application object, which is used to run a procedure at a scheduled time. The procedure, which we have scheduled to run, is “next_moment.”

Save the code. Write the time in the A2 cell and click on the ‘Start’ button to start the time counter.

Example #3

Suppose we have a list of students along with marks scored by them. We want to count the number of students who passed and who failed.

To do the same, we will write the VBA code.

Steps would be:

Open Visual Basic editor by pressing shortcut in excel Alt+F11 and double click on ‘Sheet3 (Counting Number of students)’ to insert a subroutine based on an event in Sheet3.

Choose ‘Worksheet’ from the dropdown.

As we pick ‘Worksheet’ from the list, we can see, there are various events in the adjacent dropdown. We need to choose ‘SelectionChange’ from the list.

We will declare the VBA variable ‘lastrow’ for storing last row number as a list for students can increase, ‘pass’ to store a number of students who passed, and ‘fail’ to store a number of students who failed.

We will store the value of the last row number in ‘lastrow.’

We will create the ‘for’ loop for counting based on condition.

We have set the condition if the total marks are greater than 99, then add the value 1 to the ‘pass’ variable and add one value to the ‘fail’ variable if the condition fails.

The last statement makes the heading ‘Summary’ bold.

To print the values in the sheet, the code would be:

Code:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim lastrow As 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 Then pass = pass + 1 Else fail = fail + 1 End If Cells(1, 7).Font.Bold = True Next i Range("G1").Value = "Summary" Range("G2").Value = "The number of students who passed is " & pass Range("G3").Value = "The number of students who failed is " & fail End Sub

Now whenever there is a change in selection, values will be calculated again as below:

Things to Remember

  1. Save the file after writing code in VBA with .xlsm excel extension; otherwise, the macro will not work.
  2. Use the ‘For’ loop when it is decided already for how many times the code in the VBA loop will run.

Zaujímavé články...