Vba: jak liczyć komórki zawierające określony tekst


Możesz użyć następującej podstawowej składni, aby policzyć liczbę komórek w zakresie zawierającym określony tekst za pomocą VBA:

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

W tym konkretnym przykładzie zlicza się liczbę komórek w zakresie A2:A13 zawierających „avs”, a następnie przypisuje wynik do komórki D2 .

Uwaga : Gwiazdki ( * ) są używane jako symbole wieloznaczne w funkcji Countif .

Jeśli zamiast tego chcesz wyświetlić liczbę komórek w oknie komunikatu, możesz użyć następującej składni:

 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

Poniższe przykłady pokazują, jak w praktyce zastosować każdą z tych metod, mając do dyspozycji następujący zbiór danych w Excelu, który zawiera informacje o różnych koszykarzach:

Przykład 1: Policz komórki zawierające określony tekst za pomocą VBA i wyświetl wyniki w komórce

Załóżmy, że chcemy policzyć komórki zawierające „avs” w nazwie zespołu i wyświetlić wyniki w określonej komórce.

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

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

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

Zauważ, że komórka D2 zawiera wartość 5 .

To mówi nam, że w zakresie A2:A13 znajduje się 5 komórek zawierających „avs” w nazwie zespołu.

Przykład 2: Zlicz komórki zawierające określony tekst za pomocą VBA i wyświetl wyniki w oknie komunikatu

Załóżmy zamiast tego, że chcemy policzyć liczbę komórek zawierających „avs” i wyświetlić wyniki w oknie komunikatu.

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

 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

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

Okno komunikatu informuje nas, że istnieje 5 komórek zawierających „avs” w nazwie zespołu.

Dodatkowe zasoby

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

VBA: prosta formuła na „Jeśli komórka zawiera”
VBA: Jak liczyć wystąpienia znaków w ciągu
VBA: jak sprawdzić, czy ciąg zawiera inny ciąg

Dodaj komentarz

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