Vba: jak liczyć wystąpienia znaków w ciągu


Do zliczenia liczby wystąpień znaku w ciągu znaków przy użyciu języka VBA można użyć następującej podstawowej składni:

 Sub CountOccurrences()
    Dim i As Integer
    
    'Specify character to look for
    my_char = "/"
    
    'Count occurrences in each string in B2:B12 and display results in C2:C12
    For i = 2 To 12
        Count = (Len(Range(" B " & i)) - Len(Replace(Range(" B " & i), my_char, ""))) / Len(my_char)
        Range(" C " & i) = Count
    Next i
End Sub

Ten konkretny przykład zlicza liczbę wystąpień ukośnika ( / ) w każdej komórce w zakresie B2:B12 i wyświetla wyniki w zakresie C2:C12 .

Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.

Przykład: Zliczanie wystąpień znaków w ciągu znaków przy użyciu języka VBA

Załóżmy, że mamy w Excelu następujący zestaw danych, który pokazuje nazwiska różnych koszykarzy i pozycje, na jakich mogą grać w meczu:

Załóżmy, że chcemy policzyć liczbę ukośników ( / ) w każdym ciągu znaków w kolumnie Pozycja.

W tym celu możemy utworzyć następujące makro:

 Sub CountOccurrences()
    Dim i As Integer
    
    'Specify character to look for
    my_char = "/"
    
    'Count occurrences in each string in B2:B12 and display results in C2:C12
    For i = 2 To 12
        Count = (Len(Range(" B " & i)) - Len(Replace(Range(" B " & i), my_char, ""))) / Len(my_char)
        Range(" C " & i) = Count
    Next i
End Sub

Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:

Wartości w kolumnie C wyświetlają liczbę wystąpień ukośników w pasujących ciągach w kolumnie B.

Na przykład:

  • Ciąg Straż/Naprzód zawiera 1 ukośnik.
  • Ciąg ochronny zawiera 0 ukośników.
  • Ciąg ochronny zawiera 0 ukośników.
  • Ciąg Do przodu/Środek zawiera 1 ukośnik.

I tak dalej.

Aby policzyć wystąpienia innego znaku, po prostu zmień znak zmiennej my_char w makrze.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w VBA:

VBA: jak sprawdzić, czy ciąg zawiera inny ciąg
VBA: Jak policzyć liczbę wierszy w zakresie
VBA: Jak pisać funkcje COUNTIFS i COUNTIFS

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *