Слова обычно связаны с текстовым процессором, например Microsoft Word. Однако многие люди также работают со словами в своих программах для работы с электронными таблицами. (Однажды у меня был коллега, который все время использовал Excel для написания заметок.) ​​Бывают случаи, когда вы хотите подсчитать количество слов на листе, которое вы получаете от кого-то. Есть встроенные возможности для выполнения такой задачи в Word, но не в Excel.

Одно из решений, конечно же, — загрузить книгу в Word, подсчитать там количество слов, а затем закрыть файл. Однако это не так гибко, как создание макроса для подсчета слов в самом Excel. Следующий макрос CountWords подсчитывает количество слов в любом диапазоне, выбранном вами на листе:

Sub CountWords()

Dim MyRange As Range     Dim CellCount As Long     Dim TotalWords As Long     Dim NumWords As Integer     Dim Raw As String

Set MyRange = ActiveSheet.Range(ActiveWindow.Selection.Address)

TotalWords = 0     For CellCount = 1 To MyRange.Cells.Count         If Not MyRange.Cells(CellCount).HasFormula Then             Raw = MyRange.Cells(CellCount).Value             Raw = Trim(Raw)

If Len(Raw) > 0 Then                 NumWords = 1             Else                 NumWords = 0             End If             While InStr(Raw, " ") > 0                 Raw = Mid(Raw, InStr(Raw, " "))

Raw = Trim(Raw)

NumWords = NumWords + 1             Wend             TotalWords = TotalWords + NumWords         End If     Next CellCount     MsgBox "There are " & TotalWords & " words in the selection."

End Sub

Обратите внимание, что макрос проходит через каждую ячейку в выбранном диапазоне.

Затем он игнорирует любую ячейку, содержащую формулу. Во всех остальных ячейках он по существу считает количество пробелов в ячейке. (Предполагается, что для разделения слов используются один или несколько пробелов.) Счетчик слов затем отображается в окне сообщения для вашего назидания.

Макрос довольно быстр на относительно небольших диапазонах. Если вы выберете большой диапазон (например, весь рабочий лист), макросу может потребоваться много времени, чтобы завершить свою работу. Смысл этого в том, чтобы убедиться, что вы выбираете только фактический диапазон, который хотите проанализировать, прежде чем вызывать макрос.

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (11748) применим к Microsoft Excel 2007, 2010, 2013 и 2016.

Вы можете найти версию этого совета для старого интерфейса меню Excel здесь: link: / excel-Counting_Words [Counting Words].