单词通常与文字处理器(例如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_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(2105)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: