Брой думи в Excel VBA - Лесни макроси на Excel

Съдържание

По -долу ще разгледаме програма в Excel VBA че отчита броя на думите в избран диапазон. Предполага се, че едно или повече интервали разделят думите.

Ситуация:

1. Първо, декларираме два Range обекта и три променливи. Ние наричаме Range обекти rng и cell. Една целочислена променлива, която наричаме cellWords, една целочислена променлива, която наричаме totalWords, и една променлива String, която наричаме съдържание.

Dim rng As Range, клетка As Range
Dim cellWords, totalWords As Integer, съдържание As String

2. Инициализираме Range обекта rng с избрания диапазон и двете променливи от тип Integer със стойност 0.

Задайте rng = Избор
cellWords = 0
totalWords = 0

3. Искаме да проверим всяка клетка в произволно избран диапазон (този диапазон може да бъде с всякакъв размер). В Excel VBA можете да използвате цикъла For Every Next за това. Добавете следните кодови редове:

За всяка клетка В rng
Следващата клетка

Забележка: тук rng и клетка са избрани на случаен принцип, можете да използвате всякакви имена. Не забравяйте да се позовавате на тези имена в останалата част от кода.

4. След това определяме за всяка клетка в този диапазон колко думи съдържа. За да игнорирате клетка, която съдържа формула, добавете следния кодов ред между For Each и Next (само ако cell.HasFormula е false, продължаваме).

Ако не клетка.HasFormula Тогава
Край Ако

5. Първо, записваме съдържанието на клетката към променливото съдържание. След това премахваме интервалите в началото и края (ако има такива). В Excel VBA можете да използвате функцията Trim за това. Например „excel vba“ ще бъде преобразуван в „excel vba“. Добавете следните кодови редове в израза си If.

съдържание = клетка
content = Trim (съдържание)

Забележка: функцията trim в Excel VBA не премахва излишните интервали между думите, но това е ОК в този пример.

6. В този момент клетката все още може да бъде празна. Ако клетката е празна, присвояваме стойността 0 на променливата cellWords. Ако не, той съдържа поне една дума и присвояваме стойността 1 на променливата cellWords. Добавете следните кодови редове в израза си If.

Ако content = "" Тогава
cellWords = 0
Иначе
cellWords = 1
Край Ако

Естествено, една клетка може да съдържа повече от една дума. Точно това искаме да разберем сега. Като пример вземаме: "excel vba". Ако една клетка съдържа поне едно интервал на този етап, тя съдържа поне още една дума. Можете да използвате функцията Instr в Excel VBA, за да търсите интервал. Instr (съдържание, "") намира позицията на първото пространство в съдържанието.

7. Ще използваме структурата Do While Loop. Кодът, поставен между тези думи (на стъпки 8, 9 и 10), ще се повтаря, докато частта след Do While е истина. Искаме да повторим тези стъпки, стига Instr (content, "")> 0 да е вярно (стига съдържанието да съдържа интервал и по този начин повече думи). Добавете цикъла Do While в израза си If.

Направете Докато InStr (съдържание, "")> 0
Цикъл

8. След това вземаме частта от съдържанието, започваща от позицията на първото пространство. Използваме функцията Mid за това.

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

Например: Mid ("excel vba", InStr ("excel vba", "")) ще даде "vba".

9. Подрязваме връвта отново.

content = Trim (съдържание)

Резултат: "vba"

10. Увеличаваме клетъчните думи с 1.

cellWords = cellWords + 1

Този цикъл Do While ще се повтаря, докато съдържанието съдържа интервал и по този начин повече думи. В нашия пример излизаме от Do While Loop, тъй като "vba" вече не съдържа интервал! Резултат: тази клетка съдържа 2 думи.

11. След като проверихме една клетка, добавяме cellWords към променливата totalWords. Този код код трябва да бъде поставен извън цикъла Do While, но в оператора If.

totalWords = totalWords + cellWords

Целият процес започва отново за следващата клетка, докато не бъдат проверени всички клетки.

12. И накрая, ние показваме стойността на totalWords с помощта на съобщение. Този код код трябва да бъде поставен извън цикъла For Every Next.

MsgBox totalWords & "думи, намерени в избрания диапазон."

13. Тествайте програмата.

Резултат:

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave