VBA skaitītājs | Kā izveidot skaitītāju programmā Excel VBA? (ar piemēriem)

Excel VBA skaitītājs

MS Excel ir dažādas funkcijas, lai skaitītu vērtības neatkarīgi no tā, vai tā ir virkne, skaitļi. Skaitīšanu var veikt, pamatojoties uz dažiem kritērijiem. Funkcijās ietilpst Excel, COUNT, COUNTA, COUNTBLANK, COUNTIF un COUNTIFS. Tomēr šīs funkcijas nevar veikt dažus uzdevumus, piemēram, skaitīt šūnas, pamatojoties uz to krāsu, skaitīt tikai treknrakstā norādītās vērtības utt. Tāpēc mēs izveidosim skaitītāju VBA, lai mēs varētu uzskaitīt šāda veida uzdevumus programmā Excel.

Izveidosim kādu skaitītāju programmā Excel VBA.

Excel VBA skaitītāja piemēri

Šo VBA Counter Excel veidni varat lejupielādēt šeit - VBA Counter Excel veidne

Zemāk ir VBA skaitītāja piemēri.

1. piemērs

Pieņemsim, ka mums ir 32 rindu dati, piemēram, iepriekš. Mēs izveidosim VBA skaitītāju, kurā tiks skaitītas vērtības, kas ir lielākas par 50, un vēl viens skaitītājs, lai skaitītu vērtības, kas ir mazākas par 50. Šādi izveidosim VBA kodu, lai lietotājam būtu dati par neierobežotas Excel rindas.

Lai darītu to pašu, būtu jāveic šādas darbības:

Pārliecinieties, vai  ir redzama cilne Izstrādātājs Excel. Lai padarītu cilni redzamu (ja tā nav), rīkojieties šādi:

Lentē noklikšķiniet uz cilnes Fails un sarakstā izvēlieties opciju .

Sarakstā izvēlieties " Pielāgot lenti" , atzīmējiet izvēles rūtiņu "Izstrādātājs" un noklikšķiniet uz Labi .

Tagad ir redzama cilne Izstrādātājs .

Ievietojiet komandas pogu, izmantojot Ievietošana komandu pieejamo "kontroles grupā no cilnes" attīstītājs " .

Nospiežot taustiņu ALT , ar peli izveidojiet komandas pogu. Ja mēs turpinām nospiest taustiņu ALT , komandas pogas malas automātiski iet kopā ar šūnu robežu.

Ar peles labo pogu noklikšķiniet uz komandas pogas, lai atvērtu kontekstuālo izvēlni (pārliecinieties, vai ir aktivizēts 'Design Mode', pretējā gadījumā mēs nevarēsim atvērt konteksta izvēlni).

Izvēlnē izvēlieties 'Properties' .

Mainiet komandas pogas rekvizītus, ti, nosaukums, paraksts un fonts utt.

Ar peles labo pogu noklikšķiniet vēlreiz un konteksta izvēlnē izvēlieties 'Skatīt kodu' .

Visual Basic Editor ir atvērts tagad, un pēc noklusējuma komandu pogai jau ir izveidota apakšprogramma.

Mēs tagad uzrakstīsim kodu. Mēs deklarēsim 3 mainīgos. Viens cilpa mērķim, viens skaitīšanai un viens pēdējās rindas vērtības glabāšanai.

Mēs izmantosim kodu, lai atlasītu šūnu A1 un pēc tam pašreizējo šūnas A1 reģionu, un pēc tam nonāksim līdz pēdējai aizpildītajai rindai, lai iegūtu pēdējās aizpildītās rindas numuru.

Mēs veiksim “for” cilpu VBA, lai pārbaudītu vērtības, kas ierakstītas šūnā A2 līdz pēdējai aizpildītajai šūnai kolonnā A. Mēs palielināsim mainīgā “counter” vērtību par 1, ja vērtība ir lielāka par 50, un šūnas fonta krāsu mainīsim uz “Blue” un, ja vērtība ir mazāka par 50, šūnas fonta krāsa būtu "Sarkans" .

Pēc pārbaudes un skaitīšanas mums jāparāda vērtības. Lai to izdarītu, mēs izmantosim 'VBA MsgBox'.

Kods:

 Privāts apakšskaitsCellsbyValue_Click () Dim i, skaitītājs As Integer Dim pēdējais kā garais pēdējais = diapazons ("A1"). CurrentRegion.End (xlDown). Rinda i = 2, lai aizpildītu, ja šūnas (i, 1). skaitītājs = skaitītājs + 1 šūna (i, 1). Font.ColorIndex = 5 citas šūnas (i, 1). Font.ColorIndex = 3 Beigt Ja Nākamais i MsgBox "Ir" & counter & "vērtības, kas ir lielākas par 50" & _ vbCrLf & "Ir" & lastrow - counter & "vērtības, kas ir mazākas par 50" End Sub 

Deaktivizējiet dizaina režīmu un noklikšķiniet uz pogas Komanda . Rezultāts būtu šāds.

2. piemērs

Pieņemsim, ka mēs vēlamies izveidot laika skaitītāju, izmantojot Excel VBA šādi:

Ja mēs noklikšķinām uz pogas Sākt , taimeris tiek palaists un, noklikšķinot uz pogas Pārtraukt , taimeris apstājas.

Lai darītu to pašu, būtu jāveic šādas darbības:

Izveidojiet šādu formātu Excel lapā.

Mainiet šūnas A2 formātu kā “hh: mm: ss” .

Apvienot šūnas C3 G7, izmantojot Apvienot un centru Excel  komandu "izlīdzināšana" grupas šajā cilnē "Sākums" .

Norādiet šūnas A2 atsauci uz tikko apvienoto šūnu un pēc tam veiciet formatēšanu, piemēram, izveidojiet fonta stilu uz "Baskerville" , fonta lielumu līdz 60 utt.

Izveidot divas komandu pogas "Start" un "Stop" , izmantojot "Ievietot" komandu pieejamo "kontroles grupā šajā cilnē" attīstītājs " .

Izmantojot "Properties" komandu pieejamo "kontroles grupā no cilnes" attīstītājs " , mainīt rekvizītus.

Atlasiet komandu pogas pa vienai un cilnes “Izstrādātājs” grupā “Vadīklas” izvēlieties komandu “Skatīt kodu”, lai kodu ierakstītu šādi.

Nolaižamajā izvēlnē izvēlieties atbilstošo komandas pogu.

Ievietojiet moduli “ThisWorkbook”, ar peles labo pogu noklikšķinot uz “Thisworkbook” un pēc tam izvēlieties “Insert” un pēc tam “Module” .

Modulī ierakstiet šādu kodu.

Kods:

 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 () Ja darblapas ("Laika skaitītājs"). Diapazons ("A2"). Vērtība = 0, pēc tam izejiet no apakšdarblapām ("Laika skaitītājs"). Diapazons ("A2"). Vērtība = Darblapas ("Laiks Skaitītājs "). Diapazons (" A2 "). Vērtība - TimeValue (" 00:00:01 ") sākuma_laiks Beigas Sub 

Mēs izmantojām lietojumprogrammas objekta metodi ' onTime ' , kuru izmanto, lai palaistu procedūru noteiktā laikā. Procedūra, kuru esam plānojuši izpildīt, ir “next_moment” .

Saglabājiet kodu. Ierakstiet laiku šūnā A2 un noklikšķiniet uz pogas Sākt , lai sāktu laika skaitītāju.

3. piemērs

Pieņemsim, ka mums ir studentu saraksts, kā arī viņu iegūtie punkti. Mēs vēlamies saskaitīt to studentu skaitu, kuri izturēja un kuriem neizdevās.

Lai to izdarītu, mēs uzrakstīsim VBA kodu.

Soļi būtu:

Atveriet Visual Basic redaktoru, nospiežot saīsni programmā Excel Alt + F11 un veicot dubultklikšķi uz 'Sheet3 (Skolēnu skaita skaitīšana)', lai ievietotu apakšprogrammu, kuras pamatā ir notikums Sheet3.

Nolaižamajā izvēlnē izvēlieties 'Darblapa' .

Kad mēs sarakstā izvēlamies 'Darblapa' , mēs varam redzēt, ka blakus esošajā nolaižamajā izvēlnē ir dažādi notikumi. Mums no saraksta jāizvēlas 'SelectionChange' .

Mēs paziņosim par VBA mainīgo “lastrow” pēdējās rindas numura glabāšanai, jo studentu saraksts var palielināties, “pass”, lai saglabātu to studentu skaitu, kuri izturējuši, un “neizdodas”, lai saglabātu to studentu skaitu, kuriem neizdevās.

Mēs saglabāsim pēdējās rindas numura vērtību 'lastrow'.

Mēs izveidosim cilpu “par” skaitīšanai, pamatojoties uz nosacījumu.

Mēs esam iestatījuši nosacījumu, ja kopējās atzīmes ir lielākas par 99, tad pievienojiet vērtību 1 mainīgajam 'pass' un pievienojiet 1 vērtību mainīgajam 'fail', ja nosacījums neizdodas.

Pēdējā teikumā virsraksts “Kopsavilkums” ir treknrakstā.

Lai izdrukātu lapas vērtības, kods būtu:

Kods:

 Privātā apakštīkla_SelectionChange (ByVal Target As Range) Pagarināt pēdējās garās garās garām kā Integer Dim neizdodas kā Integer lastrow = Diapazons ("A1"). CurrentRegion.End (xlDown). Rinda i = 2 Ja šūnas tiek aizpildītas (i, 5 )> 99. Tad iet = izturēt + 1 cits neizdoties = neizdoties + 1 beigties, ja šūnas (1, 7). Font.Bold = True Next i Range ("G1"). Vērtība = "Summary" diapazons ("G2"). Vērtība = "Skolēnu skaits, kuri izturējuši, ir" un iztur diapazons ("G3"). Vērtība = "Neizdevušos studentu skaits ir" & neiztur End Sub 

Tagad, kad notiek izmaiņas atlasē, vērtības atkal tiks aprēķinātas, kā norādīts zemāk:

Atceramās lietas

  1. Saglabājiet failu pēc koda ierakstīšanas VBA ar .xlsm excel paplašinājumu, pretējā gadījumā makro nedarbosies.
  2. Izmantojiet cilni “Par”, kad jau ir nolemts, cik reizes kods VBA lokā darbosies.

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