返回单元格中有多少单词

时间:2017-02-27 18:54:06

标签: excel vba excel-vba

有人可以帮我提一下如何向VBA返回单元格中的单词数量吗?

在Excel中我使用C2=LEN(B2)-LEN(SUBSTITUTE(B2," ",""))+1,但在VBA中似乎" SUBSTITUTE"功能它不再起作用了。

2 个答案:

答案 0 :(得分:8)

在空格字符上拆分并获得结果数组的上边界。

dim numchars as long
numchars = ubound(split(range("b2").value2, chr(32)))+1
debug.print numchars
由于VBA数组的默认开始(lbound)为零,因此添加了

1。

顺便说一下,工作表SUBSTITUTE函数的VBA等价物是替换。

答案 1 :(得分:0)

Regexp选项以确保仅返回有效单词,并忽略要引导的任何空白问题。

Function NumWords(strIn As String) As Long
Dim objRegex As Object
Dim objRegMC As Object
Set objRegex = CreateObject("vbscript.regexp")
With objRegex
    .Pattern = "\b[a-z]+\b"
    .Global = True
    If .test(LCase$(strIn)) Then
        Set objRegMC = .Execute(strIn)
        NumWords = objRegMC.Count
    Else
        NumWords = 0
        End If
End With
End Function