Szavak számlálása az Excel VBA programban - Egyszerű Excel makrók

Tartalomjegyzék

Az alábbiakban megnézzük a programot Excel VBA hogy számolja a szavak számát egy kiválasztott tartományban. Feltételezzük, hogy egy vagy több szóköz elválasztja a szavakat.

Helyzet:

1. Először két Range objektumot és három változót deklarálunk. A Range objektumokat rng -nek és cellának hívjuk. Egy egész változót cellWordsnak, egy egész változót totalWordsnak és egy karakterlánc változót tartalomnak nevezünk.

Dim rng As Range, cell As Range
Halvány cellWords, totalWords as Integer, content as String

2. Inicializáljuk a Range objektum rng -t a kiválasztott tartományt és az Integer típusú két változót 0 értékkel.

Set rng = Kiválasztás
cellWords = 0
totalWords = 0

3. Ellenőrizni akarjuk az egyes cellákat egy véletlenszerűen kiválasztott tartományban (ez a tartomány bármilyen méretű lehet). Az Excel VBA -ban erre használhatja a Minden egyes következő cikket. Adja hozzá a következő kódsorokat:

Minden cellához In rng
Következő cella

Megjegyzés: az rng és a cellát véletlenszerűen választjuk ki, bármilyen nevet használhat. Ne felejtse el hivatkozni ezekre a nevekre a kód többi részében.

4. Ezután határozzuk meg a tartomány minden cellájához, hogy hány szót tartalmaz. A képletet tartalmazó cella figyelmen kívül hagyásához adja hozzá a következő kód sort Minden és a Következő közé (csak akkor, ha a cell.HasFormula hamis, folytatjuk).

Ha nem sejt.HasFormula Akkor
Vége Ha

5. Először a változó tartalomba írjuk a cella tartalmát. Ezután eltávolítjuk a szóközöket az elején és a végén (ha vannak ilyenek). Az Excel VBA -ban erre használhatja a Vágás funkciót. Például az "excel vba" átalakul "excel vba" -ra. Adja hozzá a következő kódsorokat az If utasításhoz.

tartalom = cella. Érték
tartalom = kivágás (tartalom)

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 ebben a példában ez rendben van.

6. Ezen a ponton egy cella még üres lehet. Ha a cella üres, akkor a 0 értéket a cellWords változóhoz rendeljük. Ha nem, akkor legalább egy szót tartalmaz, és az 1 értéket a cellWords változóhoz rendeljük. Adja hozzá a következő kódsorokat az If utasításhoz.

Ha tartalom = "" Akkor
cellWords = 0
Más
cellWords = 1
Vége Ha

Egy cella természetesen több szót is tartalmazhat. Pontosan ezt szeretnénk most megtudni. Példaként vesszük: "excel vba". Ha egy cella legalább egy szóközt tartalmaz ebben a szakaszban, akkor tartalmaz még legalább egy szót. Az Excel VBA Instr funkciójával szóközt kereshet. Instr (tartalom, "") megtalálja a tartalom első helyének pozícióját.

7. A Do While Loop struktúrát fogjuk használni. A szavak közé helyezett kód (a 8., 9. és 10. lépésben) addig ismétlődik, amíg a Do Do utáni rész igaz. Ezeket a lépéseket addig akarjuk ismételni, amíg az Instr (content, "")> 0 igaz (mindaddig, amíg a tartalom tartalmaz egy szóközt, és így több szót). Adja hozzá a Do while hurkot az If utasításhoz.

Do while InStr (content, "")> 0
Hurok

8. Ezután vesszük a tartalom részét az első szóköztől kezdve. Ehhez a Mid funkciót használjuk.

tartalom = közepes (tartalom, InStr (tartalom, ""))

Például: Mid ("excel vba", InStr ("excel vba", "")) "vba" értéket ad.

9. Ismét levágjuk a húrt.

tartalom = kivágás (tartalom)

Eredmény: "vba"

10. A cellWords értékét 1 -gyel növeljük.

cellWords = cellWords + 1

Ez a Do Do Loop ismétlődik mindaddig, amíg a tartalom tartalmaz egy szóközt, és így több szót. Példánkban kilépünk a Do while ciklusból, mivel a "vba" már nem tartalmaz szóközt! Eredmény: ez a cella 2 szót tartalmaz.

11. Miután ellenőriztünk egy cellát, hozzáadjuk a cellWords szót a totalWords változóhoz. Ezt a kód sort a Do while cikluson kívül kell elhelyezni, de az If utasításban.

totalWords = totalWords + cellWords

Az egész folyamat újra kezdődik a következő cellában, amíg az összes cellát meg nem ellenőrzik.

12. Végül a totalWords értékét jelenítjük meg egy msgbox használatával. Ezt a kód sort a Minden egyes következő cikluson kívül kell elhelyezni.

MsgBox totalWords & "szavak találhatók a kiválasztott tartományban."

13. Tesztelje a programot.

Eredmény:

Segít a fejlesztés a helyszínen, megosztva az oldalt a barátaiddal

wave wave wave wave wave