Vba: użyj jeśli oraz, aby przetestować wiele warunków
Możesz użyć następującej podstawowej składni w VBA z JEŻELI i ORAZ, aby sprawdzić, czy spełnionych jest wiele warunków:
SubIfAnd ()
If Range(" A2 ") = "Warriors" And Range(" B2 ") > 100 Then
Range(" C2 ").Value = " Yes! "
Else
Range(" C2 ").Value = " No. "
End If
End Sub
Ten konkretny przykład sprawdza, czy wartość w komórce A2 jest równa „Wojownicy” i czy wartość w komórce B2 jest większa niż 100.
Jeżeli oba warunki są spełnione, wartość „Tak!” » jest zwracany w komórce C2 .
W przeciwnym razie wartość „Nie”. jest zwracany do komórki C2 .
Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.
Przykład: użyj JEŻELI ORAZ, aby przetestować wiele warunków w VBA
Załóżmy, że mamy w Excelu następujące dane:
Załóżmy, że chcemy ustalić, czy nazwa drużyny to Warriors , a wartość punktów jest większa niż 100 i zwrócić wynik w komórce C2 .
W tym celu możemy utworzyć następujące makro:
SubIfAnd ()
If Range(" A2 ") = "Warriors" And Range(" B2 ") > 100 Then
Range(" C2 ").Value = " Yes! "
Else
Range(" C2 ").Value = " No. "
End If
End Sub
Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:
Makro poprawnie zwraca wartość „Nie”. w komórce C2 , ponieważ oba warunki nie zostały spełnione.
Jeśli zmienimy wartość punktów w komórce B2 , a następnie uruchomimy makro ponownie, sprawdzi ono, czy dla nowych wartości zostały spełnione oba warunki:
Załóżmy na przykład, że zmienimy wartość punktową na 104 i ponownie uruchomimy makro:
Makro poprawnie zwraca wartość „Tak!” » w komórce C2 , ponieważ oba warunki zostały spełnione.
Jeśli zamiast tego chcesz wyświetlić wyniki w oknie komunikatu, możesz użyć następującej składni:
SubIfAnd ()
If Range(" A2 ") = "Warriors" And Range(" B2 ") > 100 Then
MsgBox “ Yes! ”
Else
MsgBox “ No. ”
End If
End Sub
Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:
W oknie komunikatu zostanie zwrócona odpowiedź „Tak!” » ponieważ nazwa drużyny to Wojownicy, a wartość punktowa jest większa niż 100.
Uwaga : w tym przykładzie operatora And użyliśmy w naszym makrze tylko raz, aby sprawdzić, czy dwa warunki są spełnione, ale możesz użyć dowolnej liczby operatorów And , ilu chcesz przetestować, jeśli spełnione są więcej niż dwa warunki.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w VBA:
VBA: jak korzystać z funkcji WYSZUKAJ.PIONOWO
VBA: Jak liczyć wystąpienia znaków w ciągu
VBA: jak sprawdzić, czy ciąg zawiera inny ciąg