VBA-laskuri | Kuinka luoda laskuri Excel VBA: ssa? (esimerkkien kanssa)

Excel VBA -laskuri

MS Excelissä on useita toimintoja, joiden avulla voidaan laskea arvot merkkijono, numerot. Laskenta voidaan tehdä joidenkin kriteerien perusteella. Toiminnot sisältävät COUNT, COUNTA, COUNTBLANK, COUNTIF ja COUNTIFS Excelissä. Nämä toiminnot eivät kuitenkaan voi tehdä joitain tehtäviä, kuten laskea soluja niiden värin perusteella, laskea vain lihavoituja arvoja jne. Siksi luomme laskurin VBA: hon, jotta voimme laskea tämäntyyppiset tehtävät Excelissä.

Luodaan laskuri Excel VBA: ssa.

Esimerkkejä Excel VBA -laskurista

Voit ladata tämän VBA-laskurin Excel-mallin täältä - VBA-laskurin Excel-malli

Alla on esimerkkejä VBA: n laskurista.

Esimerkki 1

Oletetaan, että meillä on yllä olevan kaltaisia ​​tietoja 32 riviltä. Luomme VBA-laskurin, joka laskee arvot, jotka ovat suurempia kuin 50, ja yhden laskurin, jotta voidaan laskea arvot, jotka ovat alle 50. Luomme VBA-koodin tällä tavalla, jotta käyttäjällä voi olla tietoja rajattomat rivit excelissä.

Voit tehdä saman seuraavasti:

Varmista, että Kehittäjä-  välilehti Excel on näkyvissä. Voit tehdä välilehden näkyväksi (jos ei) seuraavasti:

Napsauta valintanauhan Tiedosto- välilehteä ja valitse luettelosta Option .

Valitse luettelosta Mukauta nauha , valitse Kehittäjä- ruutu ja napsauta OK .

Nyt Kehittäjä-välilehti on näkyvissä.

Lisää komentopainike Kehittäjä-välilehden Ohjaimet-ryhmässä olevalla Lisää- komennolla .

Luo komentopainike hiirellä samalla, kun painat ALT- näppäintä. Jos jatkamme ALT-näppäimen painamista , komentopainikkeen reunat menevät automaattisesti solujen reunan kanssa.

Napsauta hiiren kakkospainikkeella komentopainiketta avataksesi kontekstivalikon (varmista, että Suunnittelutila on aktivoitu, muuten emme voi avata asiayhteysvalikkoa).

Valitse valikosta Ominaisuudet .

Muuta komentopainikkeen ominaisuuksia, kuten Nimi, Kuvateksti ja Fontti jne.

Napsauta hiiren kakkospainikkeella uudelleen ja valitse kontekstivalikosta 'Näytä koodi' .

Visual Basic Editor on nyt avattu ja oletuksena komentopainikkeelle on jo luotu aliohjelma.

Kirjoitamme koodin nyt. Ilmoitamme 3 muuttujaa. Yksi silmukan tarkoituksiin, yksi laskettavaksi ja toinen viimeisen rivin arvon tallentamiseksi.

Käytämme koodia solun A1 ja sitten solun A1 nykyisen alueen valitsemiseen ja menemme sitten viimeiseen täytettyyn riviin saadaksesi viimeisen täytetyn rivinumeron.

Me ajaa 'varten' silmukka VBA tarkistaa arvot kirjoitetaan A2 solun viimeinen täynnä solu A -pylvääseen. Lisäämme 'laskuri' -muuttujan arvoa yhdellä, jos arvo on suurempi kuin 50, ja muutamme solun kirjasimen väriksi 'Sininen' ja jos arvo on alle 50, solun fonttiväri olisi 'Punainen' .

Tarkistuksen ja laskemisen jälkeen meidän on näytettävä arvot. Tehdäkseen samoin käytämme 'VBA MsgBox'.

Koodi:

 Yksityinen alilaskentaCellsbyValue_Click () Dim i, laskuri Kokonaislukuna Dim lastrow As Long lastrow = Alue ("A1"). CurrentRegion.End (xlDown) .Rivi i = 2 Jos solut (i, 1) .arvo> 50 laskuri = laskuri + 1 solu (i, 1) .Font.ColorIndex = 5 muuta solua (i, 1) .Font.ColorIndex = 3 loppu Jos seuraava i MsgBox "On" & laskuri & "arvoja, jotka ovat suurempia kuin 50" & _ vbCrLf & "On olemassa & & lastrow - counter &" arvoja, jotka ovat alle 50 "End Sub 

Poista käytöstä 'Suunnittelutila' ja napsauta 'Komento-painiketta' . Tulos olisi seuraava.

Esimerkki 2

Oletetaan, että haluamme luoda aikalaskurin käyttämällä Excel VBA: ta seuraavasti:

Jos napsautamme Käynnistä- painiketta, ajastin käynnistyy ja jos napsautamme Stop- painiketta, ajastin pysähtyy.

Voit tehdä saman seuraavasti:

Luo tällainen muoto Excel-taulukossa.

Muuta solun A2 muoto muodossa 'hh: mm: ss' .

Yhdistä solut C3 G7 käyttämällä Yhdistä ja keskuksen Excel  komento 'Tasaus' ryhmä on Etusivu-välilehden .

Anna viittaus solulle A2 juuri yhdistetylle solulle ja tee sitten muotoilu, kuten tee kirjasintyyliksi 'Baskerville' , kirjasinkoko 60 jne.

Luo kaksi komentopainikkeita 'Käynnistä' ja 'Lopeta' käyttämällä Lisää-komento saatavilla 'Controls' ryhmä on "Developer-välilehti .

Käyttäen 'Ominaisuudet' komento saatavilla 'Controls' ryhmä on 'Developer' -välilehti , muuttaa ominaisuuksia.

Valitse komentopainikkeet yksitellen ja valitse 'Näytä koodi' -komento Kehittäjä- välilehden Ohjaimet- ryhmästä ja kirjoita koodi seuraavasti.

Valitse avattavasta valikosta sopiva komentopainike.

Lisää moduuli ThisWorkbookiin napsauttamalla hiiren kakkospainikkeella 'Thisworkbook' ja valitsemalla sitten 'Lisää' ja sitten 'Moduuli' .

Kirjoita seuraava koodi moduuliin.

Koodi:

 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 () Jos laskentataulukot ("Aikalaskuri"). Alue ("A2"). Arvo = 0 Sitten Poistu alitaulukoista ("Aikalaskuri"). Alue ("A2"). Arvo = Laskentataulukot ("Aika Laskuri "). Alue (" A2 "). Arvo - TimeValue (" 00:00:01 ") aloitusaika Aika Loppu 

Olemme käyttäneet Application- objektin ' onTime ' -menetelmää , jota käytetään suorittamaan toimenpide aikataulun mukaisesti. Menettely, jonka olemme suunnitelleet suorittavan, on “next_moment” .

Tallenna koodi. Kirjoita aika A2-soluun ja käynnistä aikalaskuri napsauttamalla Käynnistä- painiketta.

Esimerkki 3

Oletetaan, että meillä on luettelo opiskelijoista sekä heidän pisteytyksensä. Haluamme laskea läpäisseiden ja epäonnistuneiden opiskelijoiden määrän.

Voit tehdä saman kirjoittamalla VBA-koodin.

Vaiheet olisivat:

Avaa Visual Basic -editori painamalla pikakuvaketta Excel Alt + F11: ssä ja kaksoisnapsauttamalla 'Sheet3 (Counting student number)' lisätäksesi aliohjelman tapahtuman perusteella Sheet3: een.

Valitse avattavasta valikosta Laskentataulukko .

Kun valitsemme luettelosta laskentataulukon , voimme nähdä, että viereisessä pudotusvalikossa on useita tapahtumia. Meidän on valittava luettelosta SelectionChange .

Julistamme VBA-muuttujan "lastrow" viimeisen rivinumeron tallentamiseksi, sillä opiskelijoiden luettelo voi kasvaa, "pass" tallentaa läpäisseiden opiskelijoiden määrän ja "epäonnistui" tallentaa useita epäonnistuneita opiskelijoita.

Tallennamme viimeisen rivinumeron arvon 'lastrow'.

Luomme 'for' -silmukan laskemiseen ehtojen perusteella.

Olemme asettaneet ehdon, jos kokonaispisteet ovat yli 99, lisätään arvo 1 pass- muuttujaan ja lisätään 1 arvo fail- muuttujaan, jos ehto epäonnistuu.

Viimeinen lause tekee otsikon Yhteenveto lihavoituna.

Tulostaaksesi arkin arvot, koodi olisi:

Koodi:

 Yksityinen alitaulukko_SelectionChange (ByVal Target as Range) Himmennä viimeinen niin pitkä Dim pass kuin kokonaisluku Dim epäonnistuu kuin kokonaisluku = Range ("A1"). CurrentRegion.End (xlDown). Rivi i = 2 Jos solut (i, 5) )> 99 Sitten pass = pass + 1 Muut epäonnistuneet = epäonnistuneet + 1 End If Cells (1, 7) .Font.Bold = True Next i Range ("G1"). Arvo = "Yhteenveto" Range ("G2"). Value = "Hyväksyttyjen opiskelijoiden lukumäärä on" & läpäisyalue ("G3"). Value = "Epäonnistuneiden opiskelijoiden lukumäärä on" ja hylkää End Sub 

Nyt kun valinnassa tapahtuu muutoksia, arvot lasketaan uudelleen seuraavasti:

Muistettavaa

  1. Tallenna tiedosto, kun olet kirjoittanut koodin VBA-tiedostoon .xlsm excel -laajennuksella, muuten makro ei toimi.
  2. Käytä For-silmukkaa, kun on jo päätetty, että kuinka monta kertaa VBA-silmukan koodi toimii.

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