Brojanje riječi u Excelu VBA - Jednostavne makroe programa Excel

Sadržaj

U nastavku ćemo pogledati program u Excel VBA da broji broj riječi u odabranom rasponu. Pretpostavlja se da jedan ili više razmaka razdvajaju riječi.

Situacija:

1. Prvo, deklariramo dva Range objekta i tri varijable. Objekte Range nazivamo rng i cell. Jednu integer varijablu nazivamo cellWords, jednu integer varijablu totalWords i jednu String varijablu koju nazivamo content.

Dim rng As Range, cell As Range
Zatamni ćelijske riječi, ukupne riječi kao cijeli broj, sadržaj kao niz

2. Inicijaliziramo objekt Range rng s odabranim rasponom i dvije varijable tipa Integer s vrijednošću 0.

Postavite rng = Odabir
cellWords = 0
ukupne riječi = 0

3. Želimo provjeriti svaku ćeliju u slučajno odabranom rasponu (ovaj raspon može biti bilo koje veličine). U Excelu VBA za to možete koristiti petlju Za svaku sljedeću. Dodajte sljedeće retke koda:

Za svaku ćeliju U rng
Sljedeća ćelija

Napomena: ovdje su nasumično odabrani rng i ćelija, možete koristiti bilo koja imena. Ne zaboravite se pozivati ​​na ta imena u ostatku koda.

4. Zatim za svaku ćeliju u ovom rasponu utvrđujemo koliko riječi sadrži. Da biste zanemarili ćeliju koja sadrži formulu, dodajte sljedeći kodni redak između Za svaku i Sljedeću (samo ako je ćelija.HasFormula netočna, nastavljamo).

Ako nije stanica.HasFormula Tada
Završi ako

5. Prvo zapisujemo sadržaj ćelije u varijabilni sadržaj. Zatim uklanjamo razmake na početku i na kraju (ako ih ima). U Excelu VBA za to možete koristiti funkciju Trim. Na primjer, "excel vba" će se pretvoriti u "excel vba". Dodajte sljedeće redove koda u naredbu If.

sadržaj = ćelija.Vrijednost
content = Trim (sadržaj)

Napomena: funkcija obrezivanja u programu Excel VBA ne uklanja dodatne razmake između riječi, ali u ovom je primjeru to u redu.

6. U ovom trenutku ćelija može biti prazna. Ako je ćelija prazna, varijabli cellWords dodjeljujemo vrijednost 0. Ako ne, ona sadrži barem jednu riječ i dodjeljujemo vrijednost 1 varijabli cellWords. Dodajte sljedeće redove koda u naredbu If.

Ako je sadržaj = "" Tada
cellWords = 0
Drugo
cellWords = 1
Završi ako

Naravno, ćelija može sadržavati više od jedne riječi. To je upravo ono što sada želimo saznati. Kao primjer uzimamo: "excel vba". Ako ćelija sadrži barem jedan razmak u ovoj fazi, ona sadrži barem još jednu riječ. Za traženje razmaka možete koristiti funkciju Instr u Excelu VBA. Instr (sadržaj, "") pronalazi položaj prvog prostora u sadržaju.

7. Koristit ćemo strukturu Do While Loop. Kod postavljen između ovih riječi (u koracima 8, 9 i 10) ponavljat će se sve dok je dio nakon Do While istinit. Ove korake želimo ponavljati sve dok je Instr (content, "")> 0 točno (sve dok sadržaj sadrži razmak, a time i više riječi). Dodajte petlju Do While u svoju naredbu If.

Učiniti Dok InStr (sadržaj, "")> 0
Petlja

8. Zatim preuzimamo dio sadržaja koji počinje na mjestu prvog prostora. Za to koristimo funkciju Mid.

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

Na primjer: Mid ("excel vba", InStr ("excel vba", "")) dat će "vba".

9. Ponovno podrezujemo žicu.

content = Trim (sadržaj)

Rezultat: "vba"

10. Povećavamo ćelijske riječi za 1.

cellWords = cellWords + 1

Ova petlja Do While ponavljat će se sve dok sadržaj sadrži razmak, a time i više riječi. U našem primjeru izlazimo iz petlje Do While budući da "vba" više ne sadrži razmak! Rezultat: ova ćelija sadrži 2 riječi.

11. Nakon provjere jedne ćelije, varijabli totalWords dodajemo cellWords. Ovaj kodni redak trebao bi biti postavljen izvan petlje Do While, ali u naredbi If.

totalWords = totalWords + ćelijske riječi

Cijeli proces počinje iznova za sljedeću ćeliju dok se sve ćelije ne provjere.

12. Na kraju, prikazujemo vrijednost totalWords koristeći okvir za poruke. Ovaj kodni redak treba postaviti izvan petlje Za svaku sljedeću.

MsgBox ukupno riječi i "riječi pronađene u odabranom rasponu."

13. Testirajte program.

Proizlaziti:

Vi ćete pomoći u razvoju web stranice, dijeljenje stranicu sa svojim prijateljima

wave wave wave wave wave