Loendur Exceli VBA-s

MS Excelis on loendamiseks erinevaid viise. Saame kasutada sisseehitatud funktsioone, näiteks Count, CountIf, CountA, CountBlank, mis on Excelis olemas. Kuid need funktsioonid ei tööta VBA-s korralikult ja neil on ka piiranguid. Selle ületamiseks on meil palju funktsioone ja käske ning protsess, mille abil saame VBA loendurit käivitada. VBA loendurit kasutatakse lahtri loendamiseks, raku sisu loendamiseks ja seda kasutatakse ka loenduri taimerina, kui saame töögraafiku rakendada mis tahes ülesande mõõtmiseks.

VBA Counteri abiga saame loendada lahtrid ka nende värviindeksitega. Selle värviindeksi abil saab fonteerida värvi või lahtri taustavärvi ja rasvased väärtused.

Kuidas luua loendurit Excel VBA-s?

Allpool on toodud erinevad näited VBA-koodi abil Excelis loenduri loomiseks.

Selle VBA Counter Exceli malli saate alla laadida siit - VBA Counter Exceli mall

VBA loendur - näide nr 1

Veerus A on mõned juhuslike arvude andmed. Kõik nimetatud väärtused on juhuslikud ja neil puudub seos nagu järjestuses või jadas. Nüüd loendame VBA loenduriprotsessi abil ülemise ja madalaima väärtuse numbrid ning saame väljundi lahtrites D2 ja D3.

Loendame arvu ja värvime need üheaegselt lahtri C2 ja C3 värviteksti järgi.

Selleks toimige järgmiselt.

1. samm: looge käsu nupp, mis on saadaval vahekaardil Arendaja menüü Lisamine menüü Aktiivse X juhtelemendi allpool näidatud viisil.

2. samm: looge nupp, nagu allpool näidatud.

3. samm: klõpsake paremal loodud nupul ja minge valikule Atribuudid .

4. samm: muutke nupu pealkiri, mis vaikimisi on CommandButton2, soovitud nimeks. Siinkohal oleme selle muutnud väärtuseks “ Rakkude loendamine väärtuse järgi ”.

5. samm: kui see on tehtud, paremklõpsake loodud nuppu ja valige VBA akna saamiseks suvand Kuva kood .

Visual Basic Editor on nüüd avatud ja vaikimisi on käsunupule juba loodud alamprogramm.

Kood:

 Privaatne alamklahv CommandButton2_Click () End Sub 

6. samm: nüüd peame deklareerima 3 muutujat. Kuulutage esimene muutuja, kuhu me numbrid salvestame, ja teine ​​muutuja, mille abil kasutame loendurit täisarvudena, nagu allpool näidatud. Ja kolmas muutuja on nii pikk, et loendada igas reas salvestatud numbreid.

Kood:

 Privaatne alamklahv CommandButton2_Click () Summutab A täisarvuna Dim Loeb täisarvuna Dim LRow kui pikk ots Sub 

7. samm: nüüd valime lehe esimese lahtri, mille vahemikuks on A1. Siit valime lahtrid, kuni sellel on numbrid.

Kood:

 Privaatne alamklahv CommandButton2_Click () Tühjendama A täisarvuna Mitu arvu arvestada täisarvuna Dim LRow nii pikk LRow = vahemik ("A1"). CurrentRegion.End (xlDown) .Row End Sub 

8. samm: nüüd avame ja kirjutame tingimuse For loop jaoks, kui lahtri väärtus on suurem kui 10, siis lahtri fondi värv muudetakse kollaseks ja väärtuse jaoks vähem kui 10 korral lahtri fondi värv muudetakse Sinine vastavalt värvindeksitega 44 ja 55 .

Kood:

 Privaatne alamkäsklus Button2_Click () Tühjenda A täisarvestusena Mitu Loe täisarvuna Mitu LRow = Pikk LRow = Vahemik ("A1"). CurrentRegion.End (xlDown) .Row jaoks A = 1 LRow Kui lahtrid (A, 1) .Väärtus> 10 Seejärel loendage = loendage + 1 lahtrit (A, 1) .Font.ColorIndex = 44 muud lahtrit (A, 1) .Font.ColorIndex = 55 End Kui järgmine A End Sub 

9. samm: Nüüd, et näha lahtri A1 väärtuste väljundit kuni selle lõpuni, valime lahtrid vastavalt ülaltoodud koodile.

Kood:

 Privaatne alamkäsklus Button2_Click () Tühjenda A täisarvestusena Mitu Loe täisarvuna Mitu LRow = Pikk LRow = Vahemik ("A1"). CurrentRegion.End (xlDown) .Row jaoks A = 1 LRow Kui lahtrid (A, 1) .Väärtus> 10 Seejärel loendage = loendage + 1 lahtrit (A, 1) .Font.ColorIndex = 44 muud lahtrit (A, 1) .Font.ColorIndex = 55 Lõpeta, kui järgmine lahtrid (2, 4) .Väärtus = Loendage lahtrid (3, 4) .Väärtus = 12 - loenduri lõpp-alam 

10. samm: käivitage nüüd nuppu vajutades kood.

Näeme, et lahtrid, mis sisaldavad vähem kui 10 numbrit, on sinise värviga esile tõstetud. Ja see, mis on suurem kui 10, on kollase värviga esile tõstetud.

VBA loendur - näide nr 2

Selles näites kasutame VBA loendurit, et mõõta aega, mille jooksul saame mõõta tehtud tegevust. Oletame, et kui peame mõõtma mis tahes ülesande täitmiseks kuluvat aega, on siin kõige paremini rakendatav protsess.

Selleks toimige järgmiselt.

1. samm: looge suvalise lisamise menüü Kujundid suvalise kujuga kaks vahekaarti, nagu allpool näidatud. Valime ristküliku: ümaramad nurgad .

2. samm: looge 2 nuppu ja pange neile nimeks Start ja Reset, mille järgi käivitame taimeri ja tühjendame kellaaja.

3. samm: minge nüüd VBA-le ja avage menüü Lisamine moodul.

4. samm: kirjutage sellesse alamkategooria Start taimer, nagu allpool näidatud.

Kood:

 Sub Start () End Sub 

5. samm: kaaluge järgmise rea sõna, näiteks NextRow, kus valime töölehe, millesse koodi soovite rakendada. Siin on meie leht Sheet2 . Ja siin loendame read +1 lahtrist, mis on lahter A2, kuni meil on kursorifaili väärtus.

Kood:

 Sub Start () NextRow = ThisWorkbook.Sheets ("Sheet2"). Cells (Rows.Count, 1) .End (xlUp) .Row + 1 End Sub 

6. samm. Järgmisse ritta pääsemiseks kasutame tippvormingut, kus sulgudes olev Y-telje väärtus on 1.

Kood:

 Sub Start () NextRow = ThisWorkbook.Sheets ("Sheet2"). Cells (Rows.Count, 1) .End (xlUp) .Row + 1 Cells (NextRow, 1) = Time End Sub 

7. samm: sama lähtekoodi alla kirjutage lähtestamise kood.

Kood:

 Alam lähtestamine () Alam alam 

8. samm: lähtestamiseks säilitame sama koodi nagu Start, kuid märksõnaks muudetakse LastRow ja eemaldame +1 lihtsalt, nii et me ei peaks teise rea sisse minema.

Kood:

 Alam lähtestamine () lastrow = ThisWorkbook.Sheets ("Sheet2"). Cells (Rows.Count, 1) .End (xlUp) .Row End Sub 

9. samm: A-veeru viimasest lahtrist andmete tühjendamiseks esimesse lahtrisse valige esmalt funktsiooni ClearContents lahtrite vahemik .

Kood:

 Sub Reset () lastrow = ThisWorkbook.Sheets ("Sheet2"). Cells (Rows.Count, 1) .End (xlUp) .Row Range ("A2: A" & lastrow) .ClearContents End Sub 

Nüüd sulgege VBA aken.

10. samm: paremklõpsake vahekaardil Start ja valige suvand Assign Macro .

11. samm: valige alamkodeering Start, mida tegime ülal.

12. samm: sama toimige ka nupul Lähtesta. Määrake nupule Lähtesta alamkood Lähtesta ja klõpsake koodi täitmiseks nuppu OK ja väljumiseks disainirežiimist.

13. samm. Nüüd klõpsake kõigepealt nuppu Start . Algusaeg on 3:51:33.

14. samm: nüüd klõpsake uuesti 2-3 korda nuppu Start, et saada mitu aja möödumist. Näeme, et igas iteratsioonis on mõne sekundi pikkune vahe.

15. samm: nüüd pärast seda katsetame nuppu Lähtesta . Klõpsake nupul Lähtesta. Näeme, andmed on nüüd kustutatud ja valmis uueks ajaarvestusringiks.

Excel VBA loenduri plussid

  • Ajavahemike loendurit on väga lihtne rakendada, nagu nägime näites 2.
  • VBA loenduril on palju rakendustüüpe, see ei piirdu ainult nähtudega, mida oleme näinud.

Asjad, mida meeles pidada

  • Alati on parem määrata kood ükskõik millisele nupule, kui oleme ühes protsessis täitnud 2 või enamat tüüpi koodi.
  • Väljuge disainirežiimist, kui koodi määramine ja täitmine on vahekaardil Arendaja tehtud.
  • Samuti saame luua reaalajas loenduri, kus näeme aja arvestamist või reaalajas jälgimist.
  • Salvestage makro jaotises Makro lubada Exceli failivorming, et me ei kaotaks oma koodi.

Soovitatavad artiklid

See on VBA leti juhend. Siin arutatakse, kuidas VBA-loendurit Excelis luua, kasutades VBA-koodi koos praktiliste näidete ja allalaaditava excelimalliga. Lisateabe saamiseks võite vaadata ka järgmist artiklit -

  1. VBA ülevooluvea kasutamine Excelis
  2. Näited VBA 1004 veast
  3. Kuidas kasutada VBA DoEvents?
  4. Veergude peitmise meetodid VBA-s

Kategooria: