Бројање речи у програму Екцел ВБА - Лаки Екцел макрои

Преглед садржаја

У наставку ћемо погледати програм у Екцел ВБА то броји број речи у изабраном опсегу. Претпоставља се да један или више размака раздвајају речи.

Ситуација:

1. Прво, декларишемо два Ранге објекта и три променљиве. Објекте Ранге називамо рнг и ћелија. Једну целобројну променљиву називамо целлВордс, једну целобројну променљиву називамо тоталВордс и једну променљиву Стринг називамо садржајем.

Дим рнг Ас Ранге, целл Ас Ранге
Дим целлВордс, тоталВордс Ас Интегер, цонтент Ас Стринг

2. Иницијализујемо Ранге објекат рнг са изабраним опсегом и две променљиве типа Интегер са вредношћу 0.

Сет рнг = Селецтион
целлВордс = 0
тоталВордс = 0

3. Желимо да проверимо сваку ћелију у насумично изабраном опсегу (овај опсег може бити било које величине). У Екцел ВБА за ово можете користити петљу За сваку следећу. Додајте следеће редове кода:

За сваку ћелију У рнг
Следећа ћелија

Напомена: овде су насумично изабрани рнг и ћелија, можете користити било која имена. Не заборавите да се у остатку кода позивате на та имена.

4. Затим за сваку ћелију у овом опсегу утврђујемо колико речи садржи. Да бисте игнорисали ћелију која садржи формулу, додајте следећи кодни ред између Фор Еацх и Нект (само ако је целл.ХасФормула нетачно, настављамо).

Иф Нот целл.ХасФормула Онда
Крај Ако

5. Прво записујемо садржај ћелије у променљиви садржај. Затим уклањамо размаке на почетку и на крају (ако их има). У Екцел ВБА за ово можете користити функцију Трим. На пример, „екцел вба“ ће бити конвертован у „екцел вба“. Додајте следеће редове кода у наредбу Иф.

садржај = ћелија.Вредност
цонтент = Трим (садржај)

Напомена: функција трим у Екцел ВБА не уклања додатне размаке између речи, али у овом примеру је то у реду.

6. У овом тренутку ћелија може бити празна. Ако је ћелија празна, променљивој целлВордс додељујемо вредност 0. Ако не, она садржи најмање једну реч и ми додељујемо вредност 1 променљивој целлВордс. Додајте следеће редове кода у наредбу Иф.

Иф цонтент = "" Онда
целлВордс = 0
Иначе
целлВордс = 1
Крај Ако

Ћелија може да садржи више речи. То је управо оно што сада желимо да сазнамо. Као пример узимамо: "екцел вба". Ако ћелија садржи бар један размак у овој фази, она садржи бар још једну реч. За тражење размака можете користити функцију Инстр у програму Екцел ВБА. Инстр (цонтент, "") проналази позицију првог простора у садржају.

7. Користићемо структуру До Вхиле Лооп. Код постављен између ових речи (у корацима 8, 9 и 10) ће се понављати све док је део после До Вхиле истинит. Желимо да понављамо ове кораке све док је Инстр (цонтент, "")> 0 тачно (све док садржај садржи размак, а тиме и више речи). Додајте До вхиле петљу у вашу наредбу Иф.

До Вхиле ИнСтр (цонтент, "")> 0
Лооп

8. Затим узимамо део садржаја који почиње на позицији првог размака. За то користимо функцију Мид.

цонтент = Мид (цонтент, ИнСтр (цонтент, "")))

На пример: Мид ("екцел вба", ИнСтр ("екцел вба", "")) ће дати "вба".

9. Поново подрезујемо жицу.

цонтент = Трим (садржај)

Резултат: "вба"

10. Повећавамо ћелијске речи за 1.

целлВордс = целлВордс + 1

Ова петља До До ће се понављати све док садржај садржи размак, а тиме и више речи. У нашем примеру излазимо из До Вхиле Лооп -а јер "вба" више не садржи размак! Резултат: ова ћелија садржи 2 речи.

11. Након што смо проверили једну ћелију, додајемо целлВордс у променљиву тоталВордс. Овај кодни ред треба поставити изван До Вхиле петље, али у наредби Иф.

тоталВордс = тоталВордс + целлВордс

Цео процес почиње поново за следећу ћелију док се све ћелије не провере.

12. На крају, приказујемо вредност тоталВордс користећи поље за поруке. Овај кодни ред треба поставити изван петље За сваку следећу.

МсгБок тоталВордс & "речи су пронађене у изабраном опсегу."

13. Тестирајте програм.

Резултат:

Ви ће помоћи развој сајта, дељење страницу са пријатељима

wave wave wave wave wave