Počítat slova v aplikaci Excel VBA - snadná makra aplikace Excel

Obsah

Níže se podíváme na program v Excel VBA že počítá počet slov ve vybraném rozsahu. Předpokládá se, že jedna nebo více mezer oddělují slova.

Situace:

1. Nejprve deklarujeme dva objekty Range a tři proměnné. Objekty Range nazýváme rng a buňka. Jednu celočíselnou proměnnou nazýváme cellWords, jednu celočíselnou proměnnou nazýváme totalWords a jednu proměnnou řetězce nazýváme obsah.

Dim rng As Range, cell As Range
Dim buňková slova, celkem slova jako celé číslo, obsah jako řetězec

2. Inicializujeme objekt Range rng s vybraným rozsahem a dvěma proměnnými typu Integer s hodnotou 0.

Nastavit rng = výběr
mobilní slova = 0
totalWords = 0

3. Chceme zkontrolovat každou buňku v náhodně vybraném rozsahu (tento rozsah může mít libovolnou velikost). V aplikaci Excel VBA k tomu můžete použít smyčku For Every Next. Přidejte následující řádky kódu:

Pro každou buňku v rng
Další buňka

Poznámka: zde jsou náhodně vybrány rng a buňka, můžete použít libovolná jména. Ve zbytku kódu se na tyto názvy podívejte.

4. Dále určíme pro každou buňku v tomto rozsahu, kolik slov obsahuje. Chcete -li ignorovat buňku, která obsahuje vzorec, přidejte následující řádek kódu mezi For Every a Next (pouze pokud cell.HasFormula je false, pokračujeme).

Pokud není buňka, pak má Formulář
Konec If

5. Nejprve zapíšeme obsah buňky do proměnného obsahu. Dále odstraníme mezery na začátku a na konci (pokud existují). V aplikaci Excel VBA k tomu můžete použít funkci Oříznout. Například „excel vba“ bude převedeno na „excel vba“. Do příkazu If přidejte následující řádky kódu.

content = cell.Value
content = Trim (obsah)

Poznámka: funkce oříznutí v aplikaci Excel VBA neodstraňuje mezery mezi slovy, ale v tomto případě je to v pořádku.

6. V tomto okamžiku může být buňka prázdná. Pokud je buňka prázdná, přiřadíme proměnné cellWords hodnotu 0. Pokud ne, obsahuje alespoň jedno slovo a proměnné cellWords přiřadíme hodnotu 1. Do příkazu If přidejte následující řádky kódu.

If content = "" Then
mobilní slova = 0
Jiný
mobilní slova = 1
Konec If

Buňka může samozřejmě obsahovat více než jedno slovo. Přesně to teď chceme zjistit. Jako příklad bereme: „excel vba“. Pokud buňka obsahuje v této fázi alespoň jednu mezeru, obsahuje alespoň jedno další slovo. K vyhledání mezery můžete použít funkci Instr v Excelu VBA. Instr (content, "") najde pozici prvního prostoru v obsahu.

7. Využijeme strukturu Do While Loop. Kód umístěný mezi tato slova (v krocích 8, 9 a 10) se bude opakovat tak dlouho, dokud bude část po Do While pravdivá. Chceme tyto kroky opakovat, dokud bude Instr (obsah, "")> 0 pravdivý (pokud obsah obsahuje mezeru a tedy více slov). Přidejte smyčku Do While do příkazu If.

Do While InStr (content, "")> 0
Smyčka

8. Dále vezmeme část obsahu začínající na pozici prvního prostoru. K tomu používáme funkci Mid.

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

Například: Mid ("excel vba", InStr ("excel vba", "")) dá "vba".

9. Znovu odstřihneme provázek.

content = Trim (obsah)

Výsledek: "vba"

10. Zvýšíme buněčná slova o 1.

cellWords = cellWords + 1

Tato smyčka Do While se bude opakovat, pokud obsah obsahuje mezeru a tedy více slov. V našem příkladu ukončíme smyčku Do While, protože „vba“ již neobsahuje mezeru! Výsledek: tato buňka obsahuje 2 slova.

11. Poté, co jsme zkontrolovali jednu buňku, přidáme cellWords do proměnné totalWords. Tento řádek kódu by měl být umístěn mimo smyčku Do While, ale v příkazu If.

totalWords = totalWords + cellWords

Celý proces začíná znovu pro další buňku, dokud nejsou zkontrolovány všechny buňky.

12. Nakonec zobrazíme hodnotu totalWords pomocí msgboxu. Tento řádek kódu by měl být umístěn mimo smyčku For Every Next.

MsgBox totalWords & „slova nalezena ve vybraném rozsahu“.

13. Otestujte program.

Výsledek:

Vám pomůže rozvoji místa, sdílet stránku s přáteli

wave wave wave wave wave