VBA IIF - Jak korzystać z funkcji VBA IIF w programie Excel? (z przykładami)

Spisie treści

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.

Interesujące artykuły...