Vba: як підрахувати клітинки з певним текстом


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

 SubCountCellsWithText ()
    Range(" D2 ") = WorksheetFunction.CountIf(Range(" A2:A13 "), " *avs* ")
End Sub

У цьому конкретному прикладі підраховується кількість клітинок у діапазоні A2:A13 , які містять «avs», а потім призначається результат клітинці D2 .

Примітка . Зірочки ( * ) використовуються як символи підстановки у функції Countif .

Якщо натомість потрібно відобразити кількість клітинок у вікні повідомлення, можна використати такий синтаксис:

 SubCountCellsWithText ()

    Dim cellCount As Integer
    
    'Calculate number of cells that contain 'avs'
    cellCount = WorksheetFunction.CountIf(Range(" A2:A13 "), "* avs* ")
    
    'Display the result
    MsgBox "Cells that contain avs : " & cellCount
End Sub

У наведених нижче прикладах показано, як використовувати кожен із цих методів на практиці з таким набором даних у Excel, який містить інформацію про різних баскетболістів:

Приклад 1: підрахунок клітинок із певним текстом за допомогою VBA та відображення результатів у клітинці

Припустімо, ми хочемо підрахувати кількість клітинок, що містять «avs» у назві команди, і відобразити результати в певній клітинці.

Для цього ми можемо створити такий макрос:

 SubCountCellsWithText ()
    Range(" D2 ") = WorksheetFunction.CountIf(Range(" A2:A13 "), " *avs* ")
End Sub

Коли ми запускаємо цей макрос, ми отримуємо такий результат:

Зверніть увагу, що клітинка D2 містить значення 5 .

Це говорить нам про те, що в діапазоні A2:A13 є 5 клітинок, які містять «avs» у назві команди.

Приклад 2: підрахунок клітинок із певним текстом за допомогою VBA та відображення результатів у вікні повідомлень

Припустімо, замість цього ми хочемо підрахувати кількість клітинок, що містять “avs”, і відобразити результати у вікні повідомлення.

Для цього ми можемо створити такий макрос:

 SubCountCellsWithText ()

    Dim cellCount As Integer
    
    'Calculate number of cells that contain 'avs'
cellCount = WorksheetFunction.CountIf(Range(" A2:A13 "), " *avs* ")
    
    'Display the result
MsgBox "Cells that contain avs : " & cellCount
End Sub

Коли ми запускаємо цей макрос, ми отримуємо такий результат:

Вікно повідомлення повідомляє нам, що є 5 клітинок, які містять «avs» у назві команди.

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові завдання у VBA:

VBA: проста формула для «Якщо клітинка містить»
VBA: як підрахувати випадки появи символів у рядку
VBA: як перевірити, чи містить рядок інший рядок

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *