/ / Számok számítása az Excel VBA-ban

Számok számítása Excel VBA-ban

Az alábbiakban egy programot nézünk be Excel VBA hogy számolja a szavak számát egy kiválasztott tartományban. Egy vagy több szóköz elválasztására szava.

Helyzet:

Számok számítása Excel VBA-ban

1. Először két tartományelemet és három változót deklarálunk. Hívjuk a gamma objektumokat rng és cell. Egy Integer változót hívunk cellWords-nek, egy Integer változót, amit teljes szavaknak nevezünk, és egy String változót, amit tartalomnak nevezünk.

Dim rng As Range, cell As Range
Dim cellWords, totalWords As Integer, content As String

2. A Range objektum rng-t a választott tartományba és az Integer-érték két változóját 0 értékre állítjuk be.

Set rng = Selection
cellWords = 0
totalWords = 0

3. Minden cellát egy véletlenszerűen kiválasztott tartományban szeretnénk ellenőrizni (ez a tartomány bármilyen méretű lehet). Az Excel VBA programban használhatja a For Every Next hurot ehhez. Adja hozzá a következő kódsorokat:

For Each cell In rng

Next cell

Megjegyzés: itt rng és cell véletlenszerűen vannak kiválasztva, bármilyen nevet használhat. Ne feledje, hogy ezekre a nevekre utal a kód többi részében.

4. Ezután meghatároztuk, hogy ebben a tartományban minden egyes cellában hány szót tartalmaz. Ha egy képletet tartalmazó cellát figyelmen kívül hagyja, adja hozzá a következő kódot a For Every and Next elemhez (csak ha a cell.HasFormula hamis, folytatjuk).

If Not cell.HasFormula Then

End If

5. Először a cellatartalmat a változó tartalomra írjuk. Ezután eltávolítjuk a szóközöket az elején és a végén (ha van ilyen). Az Excel VBA programban használhatja a Trim funkciót. Például az "excel vba" -t "excel vba" -ra konvertálják. Adja hozzá a következő kódsorokat az If utasításában.

content = cell.Value
content = Trim(content)

Megjegyzés: az Excel VBA trim funkciója nem távolítja el a szóközök közötti szóközöket, de ez a példa ebben a példában.

6. Ezen a ponton a cellák továbbra is üresek lehetnek. Ha a cella üres, a 0 értéket hozzárendeljük a változó cellWords-hez. Ha nem, legalább egy szót tartalmaz, és az 1-es értéket hozzárendeljük a változó cellWords-hez. Adja hozzá a következő kódsorokat az If utasításában.

If content = "" Then
    cellWords = 0
Else
    cellWords = 1
End If

A sejt természetesen több szót tartalmazhat. Ez az, amit éppen most szeretnénk kideríteni, például: "excel vba" Ha egy cellában legalább egy hely van ebben a stádiumban, legalább egy további szót tartalmaz: az Instr függvényt Az Excel VBA keresni egy szóközt. Az instr (content, "") megtalálja az első helyet a tartalomban.

7. Használjuk a Do While Loop struktúrát. A szavak között elhelyezett kódot (a 8., 9. és 10. lépésben) mindaddig meg kell ismételni, amíg a Do Do idő után a rész igaz. Szeretnénk megismételni ezeket a lépéseket mindaddig, amíg az Instr (tartalom, "")> 0 igaz (mindaddig, amíg a tartalom szóközöket és így több szót tartalmaz). Add a Do While Loop-ot az If utasításában.

Do While InStr(content, " ") > 0

Loop

8. Ezt követõen az elsõ hely helyszínén kezdõdik a tartalom része. Ehhez használjuk a Mid funkciót.

content = Mid(content, InStr(content, " "))

Például: a közép ("excel vba", az "InStr" ("excel vba", "")) "vba" -t ad.

9. Megszűrtük a sztringet.

content = Trim(content)

Eredmény: "vba"

10. A sejtszavakat 1-tel növeljük.

cellWords = cellWords + 1

Ez a Do While Loop ismétlődik mindaddig, amíga tartalom egy szóközt és így több szót tartalmaz. Példánkban kilépünk a Do While Loop-ból, mivel a "vba" nem tartalmaz több helyet! Eredmény: ez a sejt 2 szót tartalmaz.

11. Miután ellenőrizte az egyik cellát, hozzáadunk cellWords-t a totalWords változóhoz. Ez a kódsor a Do While Loopon kívül helyezhető el, de az If utasításban.

totalWords = totalWords + cellWords

Az egész folyamat újra elindul a következő cellához, amíg az összes sejtet meg nem ellenőrzik.

12. Végül megjelenítjük az összes szó értékét egy msgbox segítségével. Ezt a kódot a For Every Next hurokon kívül kell elhelyezni.

MsgBox totalWords & " words found in the selected range."

13. Vizsgálja meg a programot.

Eredmény:

A szavak számlálása eredménye

Szintén olvasható: