Štetje besed v Excelu VBA - Enostavni Excelovi makri

Kazalo

Spodaj si bomo ogledali program v Excel VBA to šteje število besed v izbranem območju. Predpostavlja se, da en ali več presledkov ločuje besede.

Situacija:

1. Najprej razglasimo dva predmeta Range in tri spremenljivke. Objekte Range imenujemo rng in cell. Eno celoštevilsko spremenljivko imenujemo cellWords, eno celoštevilsko spremenljivko imenujemo totalWords in eno spremenljivko String imenujemo vsebina.

Dim rng As Range, celica As Range
Zatemni celice Besede, skupne besede kot celo število, vsebina kot niz

2. Inicializiramo objekt Range rng z izbranim obsegom in dvema spremenljivkama tipa Integer z vrednostjo 0.

Nastavi rng = Izbor
cellWords = 0
totalWords = 0

3. Vsako celico želimo preveriti v naključno izbranem območju (to območje je lahko poljubne velikosti). V Excelu VBA lahko za to uporabite zanko Za vsak naslednji. Dodajte naslednje kodne vrstice:

Za vsako celico V rng
Naslednja celica

Opomba: rng in celica sta tukaj naključno izbrana, lahko uporabite poljubno ime. Ne pozabite se sklicevati na ta imena v preostali kodi.

4. Nato za vsako celico v tem obsegu določimo, koliko besed vsebuje. Če želite prezreti celico, ki vsebuje formulo, dodajte naslednjo kodno vrstico med Za vsako in Naprej (samo če je celica. HasFormula napačna, nadaljujemo).

Če ni celica.HasFormula Potem
Konec Če

5. Najprej vsebino celice zapišemo v spremenljivo vsebino. Nato odstranimo presledke na začetku in koncu (če obstajajo). V Excelu VBA lahko za to uporabite funkcijo Trim. Na primer, "excel vba" bo pretvorjen v "excel vba". V stavek If dodajte naslednje kodne vrstice.

vsebina = celica.Vrednost
content = Trim (vsebina)

Opomba: funkcija obrezovanja v Excelu VBA ne odstrani dodatnih presledkov med besedami, vendar je v tem primeru to v redu.

6. Na tej točki je lahko celica še vedno prazna. Če je celica prazna, spremenljivki cellWords dodelimo vrednost 0. Če ne, vsebuje vsaj eno besedo in spremenljivki cellWords dodelimo vrednost 1. V stavek If dodajte naslednje kodne vrstice.

Če je vsebina = "" Potem
cellWords = 0
Sicer pa
cellWords = 1
Konec Če

Celica lahko vsebuje več besed. Ravno to želimo izvedeti zdaj. Kot primer vzamemo: "excel vba". Če celica na tej stopnji vsebuje vsaj en presledek, vsebuje vsaj še eno besedo. Za iskanje presledka lahko uporabite funkcijo Instr v Excelu VBA. Instr (vsebina, "") najde položaj prvega prostora v vsebini.

7. Uporabili bomo strukturo Do While Loop. Koda, postavljena med te besede (v korakih 8, 9 in 10), se bo ponavljala, dokler je del za Do While res. Te korake želimo ponavljati, dokler je Instr (vsebina, "")> 0 res (če vsebina vsebuje presledek in s tem več besed). V izjavo If dodajte zanko Do While Loop.

Do While InStr (vsebina, "")> 0
Zanka

8. Nato vzamemo del vsebine, ki se začne na mestu prvega presledka. Za to uporabljamo funkcijo Mid.

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

Na primer: Mid ("excel vba", InStr ("excel vba", "")) bo dal "vba".

9. Spet obrežemo vrvico.

content = Trim (vsebina)

Rezultat: "vba"

10. Celične besede povečamo za 1.

cellWords = cellWords + 1

Ta Do Do Loop se bo ponavljal, dokler vsebina vsebuje presledek in s tem več besed. V našem primeru zapustimo zanko Do While Loop, saj "vba" ne vsebuje več presledka! Rezultat: ta celica vsebuje 2 besedi.

11. Po preverjanju ene celice spremenljivki totalWords dodamo cellWords. To kodno vrstico je treba postaviti zunaj zanke Do While, ampak v stavek If.

totalWords = totalWords + cellWords

Celoten postopek se začne znova za naslednjo celico, dokler niso pregledane vse celice.

12. Nazadnje prikažemo vrednost totalWords z uporabo sporočila. To kodno vrstico je treba postaviti zunaj zanke Za vsak naslednji.

MsgBox totalWords & "besede, najdene v izbranem obsegu."

13. Preizkusite program.

Rezultat:

Vam bo pomagal razvoj spletnega mesta, ki si delijo stran s svojimi prijatelji

wave wave wave wave wave