Если ваша цель состоит в том, чтобы посчитать вхождения буквы в строку, вы можете использовать что-то вроде этого:
Function CountOccurrencesOf(Letter As String, InString As String, Optional CaseSensitive As Boolean = True) As Long
CountOccurrencesOf = Len(InString) - Len(Replace$(InString, Letter, vbNullString, , , IIf(CaseSensitive, vbBinaryCompare, vbTextCompare)))
End Function
И вызвать функцию как:
MsgBox CountOccurrencesOf(Letter:="A", InString:="A Sentence with occurences of a or A or anything else", CaseSensitive:=False)
Как отметил Натан_Сав: для подсчета нескольких букв (например, Letter:="en"
) вам нужно разделить на Len(Letter)
:
CountOccurrencesOf = (Len(InString) - Len(Replace$(InString, Letter, vbNullString, , , IIf(CaseSensitive, vbBinaryCompare, vbTextCompare)))) / Len(Letter)