在Excel VBA中从TextBox计算单词

spr*_*eup 0 excel vba words count

目前我有完全在TextBox中计算单词字符的代码,但我如何从Textboxes开始计算WORDS.我只是想不通.下面我添加了需要修改的代码:

Sub CountCharFromTextBox()
Dim shp As Shape
Dim wks As Worksheet
Dim lTxtBoxWords As Long
    For Each wks In ActiveWorkbook.Worksheets
        For Each shp In wks.Shapes
            If TypeName(shp) <> "GroupObject" Then
                lTxtBoxWords = shp.TextFrame.Characters.Count
            End If
        Next shp
        Next wks
        MsgBox lTxtBoxWords
End Sub
Run Code Online (Sandbox Code Playgroud)

我只是找不到TextFrame的任何类似属性.TextFrame2都不起作用.我不知道现在该做什么.

希望任何人都能找到改变的地方.

Car*_*son 5

Function countWords(ByVal sentence As String) As Integer
    countWords = UBound(Split(sentence, " ")) + 1
End Function
Run Code Online (Sandbox Code Playgroud)

说明:

Split()函数返回在指定的分隔符上拆分的字符串数组.例如,split("Carl is awesome","")会在""(空格)上分开并返回:["Carl","is","awesome"].该数组的索引是0-2.

Ubound()返回数组中最后一个元素的索引.由于split()的数组从0开始,我们需要在ubound()的结果中加1.

函数CountWords()接受一个字符串并返回空格数+ 1,这几乎可以肯定是单词的数量.您可以考虑检查split()返回的元素的长度,以捕获0长度的"单词",即双空格或前导或尾随空格.