VBA -MÄÄRÄ

Tämä opetusohjelma näyttää, kuinka voit käyttää Excel COUNT -toimintoa VBA: ssa

VBA COUNT -toimintoa käytetään laskemaan laskentataulukon solujen määrä, joissa on arvoja. Siihen pääsee VBA: n WorksheetFunction -menetelmällä.

COUNT laskentataulukon toiminto

WorksheetFunction -objektia voidaan käyttää useimpien Excel -toimintojen kutsumiseen, jotka ovat käytettävissä Excelin Lisää toiminto -valintaikkunassa. COUNT -toiminto on yksi niistä.

123 AlitestilaskuriFunctinoAlue ("D33") = Application.WorksheetFunction.Count (Alue ("D1: D32"))End Sub

Laskentatoiminnossa voi olla enintään 30 argumenttia. Jokaisen argumentin on viitattava solualueeseen.

Tässä alla olevassa esimerkissä lasketaan, kuinka monta solua arvoilla on soluissa D1 - D9

123 Alitestitili ()Alue ("D10") = Application.WorksheetFunction.Count (Alue ("D1: D9"))End Sub

Alla oleva esimerkki laskee, kuinka monta arvoa on sarakkeen D alueella ja sarakkeen F alueella. Jos et kirjoita sovellusobjektia, se oletetaan.

123 AlatestiCountMultiple ()Alue ("G8") = WorksheetFunction.Count (Alue ("G2: G7"), alue ("H2: H7"))End Sub

Laskutuloksen määrittäminen muuttujaan

Voit halutessasi käyttää kaavan tulosta muualla koodissa sen sijaan, että kirjoitat sen suoraan takaisin Excel -alueelle. Jos näin on, voit määrittää tuloksen muuttujalle käytettäväksi myöhemmin koodissasi.

1234567 Alivalintalaskuri ()Dim -tulos kokonaislukuna'Määritä muuttujaresult = WorksheetFunction.Count (alue ("H2: H11"))'Näytä tulosMsgBox "Arvojen sisältämien solujen määrä on" & resultEnd Sub

COUNT alueobjektin kanssa

Voit määrittää Range -objektille soluryhmän ja käyttää sitten Range -objektia LaskentataulukkoToiminto esine.

123456789 AlatestiCountRange ()Dim rng as Range'määritä solualueAseta rng = alue ("G2: G7")'käytä kaavaaAlue ("G8") = WorksheetFunction.Count (rng)'vapauta etäisyysobjektiAseta rng = ei mitäänEnd Sub

COUNT useita alueita

Samoin voit laskea, kuinka monta solua on täytetty arvoilla useissa alueobjekteissa.

123456789101112 Sub TestCountMultipleRanges ()Dim rngA As RangeDim rngB kuin alue'määritä solualueAseta rngA = alue ("D2: D10")Aseta rngB = alue ("E2: E10")'käytä kaavaaAlue ("E11") = WorksheetFunction.Count (rngA, rngB)'vapauta etäisyysobjektiAseta rngA = ei mitäänAseta rngB = ei mitäänEnd Sub

COUNTAn käyttäminen

Laskenta laskee vain soluissa olevat ARVOT, se ei laske solua, jos solussa on tekstiä. Jos haluat laskea solut, joissa on kaikenlaisia ​​tietoja, meidän on käytettävä COUNTA -funktiota.

123 AlatestiCountA ()Alue ("B8) = Application.WorksheetFunction.CountA (Alue (" B1: B6 "))End Sub

Alla olevassa esimerkissä LASKE -funktio palauttaa nollaa, koska sarakkeessa B ei ole arvoja, kun taas se palauttaa 4 sarakkeessa C. COUNTA -funktio kuitenkin laskee solut, joissa on tekstiä, ja palauttaa arvon 5 sarakkeessa B ja palauttaa silti arvon 4 sarakkeessa C.

COUNTBLANKSin käyttäminen

COUNTBLANKS -toiminto laskee vain solualueella olevat tyhjät solut - eli solut, joissa ei ole lainkaan tietoja.

123 AlatestiCountBlank ()Alue ("B8) = Application.WorksheetFunction.CountBlanks (Alue (" B1: B6 "))End Sub

Alla olevassa esimerkissä sarakkeessa B ei ole tyhjiä soluja, kun taas sarakkeessa C on yksi tyhjä solu.

COUNTIF -toiminnon käyttäminen

Toinen laskentataulukkotoiminto, jota voidaan käyttää, on COUNTIF -toiminto.

123456 AlitestilaskentaJos ()Alue ("H14") = WorksheetFunction.CountIf (Alue ("H2: H10"), "> 0")Alue ("H15") = WorksheetFunction.CountIf (Alue ("H2: H10"), "> 100")Alue ("H16") = WorksheetFunction.CountIf (Alue ("H2: H10"), "> 1000")Alue ("H17") = WorksheetFunction.CountIf (Alue ("H2: H10"), "> 10000")End Sub

Yllä oleva menettely laskee solut, joissa on arvoja, vain jos ehdot täyttyvät - yli 0, yli 100, yli 1000 ja yli 10000. Ehdot on laitettava lainausmerkkeihin, jotta kaava toimii oikein.

WorksheetFunction -toiminnon haitat

Kun käytät LaskentataulukkoToiminto laskeaksesi laskentataulukon alueen arvot, palautetaan staattinen arvo, ei joustava kaava. Tämä tarkoittaa sitä, että kun Excelin luvut muuttuvat, arvo on palauttanut LaskentataulukkoToiminto ei muutu.

Yllä olevassa esimerkissä TestCount on laskenut solut sarakkeessa H, jossa on arvo. Kuten kaavapalkista näet, tämä tulos on luku eikä kaava.

Jos jokin arvo muuttuu siksi alueella (H2: H12), tulokset H14: ssä muuttuvat EI muuttaa.

Käyttämisen sijasta LaskentataulukkoToiminto.Luku, voit käyttää VBA: ta käyttääksesi laskutoimintoa soluun käyttämällä Kaava tai KaavaR1C1 menetelmiä.

Kaavamenetelmän käyttäminen

Kaavamenetelmän avulla voit osoittaa erityisesti solualueelle, esimerkiksi: H2: H12, kuten alla on esitetty.

123 AlitestilaskentakaavaAlue ("H14"). Kaava = "= Count (H2: H12)"End Sub

Käyttämällä FormulaR1C1 -menetelmää

FromulaR1C1 -menetelmä on joustavampi, koska se ei rajoita sinua tiettyyn solualueeseen. Alla oleva esimerkki antaa meille saman vastauksen kuin yllä oleva.

123 Sub TestCountFormula ()Alue ("H14"). Kaava = "= Count (R [-9] C: R [-1] C)"End Sub

Kaavan joustavuuden parantamiseksi voisimme kuitenkin muuttaa koodia tältä:

123 Sub TestCountFormula ()ActiveCell.FormulaR1C1 = "= Laske (R [-11] C: R [-1] C)"End Sub

Missä tahansa olet laskentataulukossasi, kaava laskee sitten sen yläpuolella olevien 12 solun arvot ja sijoittaa vastauksen ActiveCell -laitteeseesi. COUNT -toiminnon sisällä olevaan alueeseen on viitattava rivin (R) ja sarakkeen (C) syntaksilla.

Molempien näiden menetelmien avulla voit käyttää dynaamisia Excel -kaavoja VBA: ssa.

H14: ssä on nyt kaava arvon sijasta.

Tulet auttaa kehittämään sivuston jakaminen sivu ystävillesi

wave wave wave wave wave