Difícil e complicado com funções de planilha devido à dificuldade de determinar limites de palavras ao lidar com espaços e também várias pontuações.
O mecanismo Expressão Regular do VBA tem um token simples \b
que detecta limites de palavras definidos como o ponto onde um caractere word
e non-word
, ou o início ou o fim da linha, se encontram. Um caractere de palavra é aquele que está no conjunto de [A-Za-z0-9_]
A função VBA:
Option Explicit
'Set Reference to Microsoft VBScript Regular Expressions 5.5
' or convert to Late Binding
Function ReCount(str As String, Pattern As String, _
Optional CaseSensitive As Boolean = True) As Long
Dim objRegExp As RegExp
Dim objMatch As Match
Dim colMatches As MatchCollection
' Create a regular expression object.
Set objRegExp = New RegExp
'Set the pattern by using the Pattern property.
objRegExp.Pattern = Pattern
' Set Case Insensitivity.
objRegExp.ignoreCase = Not CaseSensitive
'Set global applicability.
objRegExp.Global = True
'Test whether the String can be compared.
If (objRegExp.Test(str) = True) Then
'Get the matches.
Set colMatches = objRegExp.Execute(str) ' Execute search.
ReCount = colMatches.Count
Else
ReCount = 0
End If
End Function
Uso:
=ReCount(A6,"\bwood\b")