Решить данную задачу можно кучей способов... Вот так
Dim s1 As String, s2 As String Dim Cnt As Integer s1 = "es" s2 = "vest is best forest" Cnt = 0 While InStr(1, s2, s1) > 0 Cnt = Cnt + 1 s2 = Mid(s2, InStr(1, s2, s1) + Len(s1)) Wend MsgBox "Count = " & Str(Cnt)
или так Dim s1 As String, s2 As String Dim PrevPos As Integer, Cnt As Integer s1 = "es" s2 = "vest is best forest" PrevPos = 1 Cnt = 0 While InStr(PrevPos, s2, s1) > 0 Cnt = Cnt + 1 PrevPos = InStr(PrevPos, s2, s1) + 1 Wend MsgBox "Count = " & Str(Cnt)
и вот так Dim s1 As String, s2 As String Dim i As Integer, Cnt As Integer s1 = "es" s2 = "vest is best forest" i = 1 Cnt = 0 For i = 1 To Len(s2) - Len(s1) + 1 If Mid(s2, i, Len(s1)) = s1 Then Cnt = Cnt + 1 Next i MsgBox "Count = " & Str(Cnt)
Ещё один вариант - правда, красиво!
Dim s1 As String, s2 As String s1 = "es" s2 = "vest is best forest" MsgBox "Count = " & UBound(Split(s2, s1))
|