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 Turtle ”
End 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 Turtle ”
End 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