Vba: как подсчитать вхождение символов в строку


Вы можете использовать следующий базовый синтаксис для подсчета количества вхождений символа в строку с помощью VBA:

 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

В этом конкретном примере подсчитывается количество вхождений косой черты ( / ) в каждой ячейке в диапазоне B2:B12 и отображаются результаты в диапазоне C2:C12 .

В следующем примере показано, как использовать этот синтаксис на практике.

Пример. Подсчет вхождений символов в строку с помощью VBA

Допустим, у нас есть следующий набор данных в Excel, в котором показаны имена разных баскетболистов и позиции, которые они могут играть в игре:

Предположим, мы хотим подсчитать количество косых черт ( / ) в каждой строке в столбце «Позиция».

Для этого мы можем создать следующий макрос:

 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

Когда мы запускаем этот макрос, мы получаем следующий вывод:

Значения в столбце C отображают количество вхождений косой черты в соответствующие строки в столбце B.

Например:

  • Строка Guard/Forward содержит 1 косую черту.
  • Строка Guard содержит 0 косых черт.
  • Строка Guard содержит 0 косых черт.
  • Строка «Вперед/Центр» содержит 1 косую черту.

И так далее.

Чтобы подсчитать появление другого символа, просто измените символ переменной my_char в макросе.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в VBA:

VBA: как проверить, содержит ли строка другую строку
VBA: как подсчитать количество строк в диапазоне
VBA: как писать функции COUNTIF и COUNTIFS

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *