Numărați cuvinte în Excel VBA - Macro Excel ușor

Cuprins

Mai jos vom analiza un program în Excel VBA acea numără numărul de cuvinte într-un interval selectat. Se presupune că unul sau mai multe spații separă cuvintele.

Situatie:

1. În primul rând, declarăm două obiecte Range și trei variabile. Numim obiectele Range rng și celulă. O variabila Integer pe care o numim cellWords, o variabila Integer o numim totalWords si o variabila String pe care o numim continut.

Dim rng As Range, celulă As Range
Dim CellWords, TotalWords As Integer, content as String

2. Inițializăm obiectul Range rng cu intervalul selectat și cele două variabile de tip Integer cu valoarea 0.

Set rng = Selection
CellWords = 0
TotalWords = 0

3. Vrem să verificăm fiecare celulă dintr-un interval selectat aleatoriu (acest interval poate fi de orice dimensiune). În Excel VBA, puteți utiliza bucla Pentru fiecare următor pentru aceasta. Adăugați următoarele linii de cod:

Pentru fiecare celulă din rng
Următoarea celulă

Notă: rng și celulă sunt alese la întâmplare aici, puteți folosi orice nume. Nu uitați să consultați aceste nume în restul codului.

4. Apoi, determinăm pentru fiecare celulă din acest interval câte cuvinte conține. Pentru a ignora o celulă care conține o formulă, adăugați următoarea linie de cod între Pentru fiecare și Următorul (numai dacă celula.HasFormula este falsă continuăm).

Dacă nu este celulă.HasFormulă Apoi
End If

5. În primul rând, scriem conținutul celulei în conținutul variabil. Apoi, eliminăm spațiile de la început și sfârșit (dacă există). În Excel VBA, puteți utiliza funcția Trim pentru acest lucru. De exemplu, „excel vba” va fi convertit în „excel vba”. Adăugați următoarele linii de cod în declarația dvs. If.

content = cell.Value
content = Trim (content)

Notă: funcția de tăiere în Excel VBA nu elimină spații suplimentare între cuvinte, dar acest lucru este OK în acest exemplu.

6. În acest moment, o celulă poate fi încă goală. Dacă celula este goală, atribuim valoarea 0 variabilei celule Words. Dacă nu, conține cel puțin un cuvânt și atribuim valoarea 1 variabilei celule Words. Adăugați următoarele linii de cod în declarația dvs. If.

Dacă conținut = "" Atunci
CellWords = 0
Altfel
CellWords = 1
End If

O celulă poate conține mai mult de un cuvânt, desigur. Exact asta vrem să aflăm acum. Ca exemplu luăm: "excel vba". Dacă o celulă conține cel puțin un spațiu în acest stadiu, conține cel puțin încă un cuvânt. Puteți utiliza funcția Instr în Excel VBA pentru a căuta un spațiu. Instr (conținut, "") găsește poziția primului spațiu în conținut.

7. Vom folosi structura Do While Loop. Codul plasat între aceste cuvinte (la pasul 8, 9 și 10) va fi repetat atâta timp cât partea de după Do While este adevărată. Vrem să repetăm ​​acești pași atâta timp cât Instr (conținut, "")> 0 este adevărat (atâta timp cât conținutul conține un spațiu și, prin urmare, mai multe cuvinte). Adăugați bucla Do While în declarația dvs. If.

Faceți În timp ce InStr (conținut, "")> 0
Buclă

8. Apoi, luăm partea de conținut începând de la poziția primului spațiu. Pentru aceasta folosim funcția Mid.

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

De exemplu: Mid ("excel vba", InStr ("excel vba", "")) va da "vba".

9. Decupăm din nou șirul.

content = Trim (content)

Rezultat: "vba"

10. Creștem cuvintele celulare cu 1.

cuvinte celulare = cuvinte celulare + 1

Acest ciclu Do While Loop se va repeta atâta timp cât conținutul conține un spațiu și, prin urmare, mai multe cuvinte. În exemplul nostru, ieșim din bucla Do While, deoarece „vba” nu mai conține un spațiu! Rezultat: această celulă conține 2 cuvinte.

11. După ce ați verificat o celulă, adăugăm cuvinte celulare la variabila cuvinte totale. Această linie de cod ar trebui să fie plasată în afara buclei Do While, dar în instrucțiunea If.

totalWords = totalWords + cuvinte celulare

Întregul proces începe din nou pentru următoarea celulă până când toate celulele au fost verificate.

12. În cele din urmă, afișăm valoarea cuvintelor totale folosind un msgbox. Această linie de cod trebuie plasată în afara buclei For Each Next.

MsgBox total Cuvinte și „cuvinte găsite în intervalul selectat”.

13. Testați programul.

Rezultat:

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave