有人可以帮我提一下如何向VBA返回单元格中的单词数量吗?
在Excel中我使用C2=LEN(B2)-LEN(SUBSTITUTE(B2," ",""))+1
,但在VBA中似乎" SUBSTITUTE
"功能它不再起作用了。
答案 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