Vba: prosta formuła na „jeśli komórka zawiera”


Możesz użyć następującej podstawowej składni, aby użyć formuły „jeśli komórka zawiera” w VBA:

 Sub IfContains()
    Dim i As Integer

    For i = 2 To 8
        If InStr(1, LCase(Range(" A " & i)), " turtle ") <> 0 Then
        Result = " Contains Turtle "
        Else
        Result = “ Does Not Contain TurtleEnd If
    Range(" B " & i) = Result
    Next i
End Sub

Ten konkretny przykład sprawdza, czy każda komórka w zakresie A2:A8 zawiera „żółw”, a następnie przypisuje „Zawiera żółwia” lub „Nie zawiera żółwia” do każdej pasującej komórki w zakresie B2:B8 .

Uwaga : Metoda Instr sprawdza, czy ciąg znaków zawiera inny ciąg, a metoda LCase konwertuje tekst na małe litery, aby przeprowadzić wyszukiwanie bez uwzględniania wielkości liter.

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

Przykład: Jak używać „Jeśli komórka zawiera” w VBA

Załóżmy, że mamy następującą listę komórek w programie Excel, z których każda zawiera inny tekst:

Załóżmy, że chcemy sprawdzić, czy każda komórka zakresu A2:A8 zawiera tekst „żółw” i wyświetlić wyniki w odpowiednich komórkach zakresu B2:B8 .

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

 Sub IfContains()
    Dim i As Integer

    For i = 2 To 8
        If InStr(1, LCase(Range(" A " & i)), " turtle ") <> 0 Then
        Result = " Contains Turtle "
        Else
        Result = “ Does Not Contain TurtleEnd If
    Range(" B " & i) = Result
    Next i
End Sub

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

Kolumna B informuje nas, czy odpowiednie komórki w kolumnie A zawierają gdzieś w tekście słowo „żółw”.

Uwaga : Pełną dokumentację metody VBA Instr znajdziesz tutaj .

Dodatkowe zasoby

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

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 *