Excel VBA IIF
Jeśli jesteś zwykłym użytkownikiem makr VBA, na pewno natknąłeś się na funkcję o nazwie „IIF” lub być może widziałeś tę funkcję w Internecie. Na pierwszy rzut oka musiałeś pomyśleć, że jest to warunek JEŻELI, taki jak nasze zwykłe oświadczenie JEŻELI w programie Excel. Ale to nie jest ta sama instrukcja IF, której używamy do oceny testów logicznych i uzyskania wyników na podstawie podanych przez nas kryteriów. W tym artykule przeprowadzimy Cię przez warunek „VBA IIF” w języku VBA.
Co robi stan IIF w VBA?
Jest to bardzo podobne do naszego stanu IF, ale ma nieco inny charakter. Warunek „VBA IIF” sprawdza podane wyrażenie lub test logiczny i zwraca jako wynik PRAWDA lub FAŁSZ.
Składnia VBA IIF
Spójrz na składnię funkcji IIF.

- Wyrażenie: To nic innego jak test logiczny, który chcielibyśmy przeprowadzić.
- Część Ture: Jeśli test logiczny ma wartość PRAWDA, co powinno być częścią PRAWDA.
- Część fałszywa: jeśli test logiczny ma wartość FAŁSZ, to jaki powinien być wynik części FAŁSZ.
Możemy wprowadzić własne wyniki z częściami PRAWDA i FAŁSZ. Chociaż argumenty wyglądają podobnie do warunku JEŻELI, będzie to nieco inne. Zobaczymy to na przykładach funkcji Excel VBA IIF.
Jedną z kluczowych różnic między zwykłym „IF” a tym „IIF” jest to, że możemy zredukować kod do jednej linii z warunkiem Iwherewithwith IF, a uzyskanie tego samego wyniku zajmie minimum 5 linii.

Przykład funkcji VBA IIF
Poniżej znajdują się przykłady funkcji VBA IIF w programie Excel.
Przykład 1 - VBA IIF
Ok, zobaczymy jeden prosty przykład funkcji IIF. Teraz sprawdzimy, czy jedna liczba jest większa lub mniejsza niż inna liczba. Wykonaj poniższe kroki, aby napisać kod VBA.
Krok 1: Uruchom makro.
Krok 2: Zdefiniuj zmienną jako ciąg w VBA.
Kod:
Sub IIF_Example () Dim FinalResult As String End Sub

Krok 3: Zdefiniuj dwie dodatkowe zmienne jako długie w VBA.
Kod:
Sub IIF_Example () Dim FinalResult As String Dim Number1 As Long Dim Number2 As Long End Sub

Krok 4: Teraz dla zmiennej „Number1” przypisz wartość 105, a zmiennej „Number2” przypisz wartość 100.
Kod:
Sub IIF_Example () Dim FinalResult As String Dim Number1 As Long Dim Number2 As Long Number1 = 105 Number2 = 100 End Sub

Krok 5: Teraz dla pierwszej zdefiniowanej zmiennej „FinalResult” przypiszemy wynik funkcji IIF. Więc otwórz IIF dla zmiennej.

Krok 6: Podaj wyrażenie jako Liczba1> Liczba2.

Krok 7: Teraz, jeśli wyrażenie ma wartość PRAWDA, jaki powinien być wynik. Jako wynik przypiszę „Numer 1 jest większy niż Numer 2”.

Krok 8: Teraz, jeśli wyrażenie ma wartość FAŁSZ, jaki powinien być wynik. Jako wynik przypiszę „Numer 1 jest mniejszy niż Numer 2”.

Teraz wartość zmiennej będzie jedną z poniższych.
Jeśli prawda: „Liczba 1 jest większa niż liczba 2.”
Jeśli fałsz: „Liczba 1 jest mniejsza niż liczba 2.”
Krok 9: Pokażmy wynik w oknie komunikatu w VBA.
Kod:
Sub IIF_Example () Dim FinalResult As String Dim Number1 As Long Dim Number2 As Long Number1 = 105 Number2 = 100 FinalResult = IIf (Number1> Number2, "Number 1 is Greater than Number 2", "Number 1 is Less than Number 2") MsgBox FinalResult End Sub

Teraz uruchommy kod i zobaczmy wynik.

Ponieważ wartość liczby 1 to 105, czyli większa niż wartość liczby 2 równa 100, otrzymaliśmy wynik jako „Liczba 1 jest większa niż liczba 2”. Ponieważ wyrażenie ma wartość TRUE, warunek IIF zwrócił ten wynik.
Przykład # 2 - IF vs. IIF
You must be wondering what the difference between IF & IIF is. Yes, there is a difference in coding. For example, look at the IF condition code.
Code:
Sub IIF_Example() Dim FinalResult As String Dim Number1 As Long Dim Number2 As Long Number1 = 105 Number2 = 100 If Number1> Number2 Then MsgBox "Number 1 is Greater than Number 2" Else MsgBox "Number 1 is Less than Number 2" End If End Sub

Using IF first, we have applied a logical test.
If Number1> Number2 Then
Then if the logical test is true, we have applied the result.
MsgBox "Number 1 is Greater than Number 2"
Then if the logical test is false, we have applied the different results.
MsgBox "Number 1 is Less than Number 2"
Obie funkcje zwracają ten sam wynik, ale w przypadku IIF możemy kodować tylko w jednym wierszu, podczas gdy instrukcja IF wymaga wielu wierszy.
Przykład # 3 - Zagnieżdżony warunek IIF VBA
Podobnie jak w przypadku używania zagnieżdżonego IF do podobnego testowania wielu warunków, możemy również użyć wielu IIF. Spójrz na poniższy kod.
Kod:
Sub IIF_Example2 () Dim FinalResult As String Dim Marks As Long Marks = 98 FinalResult = IIf (Marks> 90, "Dist", IIf (Marks> 80, "First", IIf (Marks> 70, "Second", IIf (Marks > 60, „Third”, „Fail”)))) MsgBox FinalResult End Sub

Powyższy warunek IIF testuje pięć testów logicznych i odpowiednio zwraca wynik.