VBA Çoklu (İç İçe) If İfadeleri

Bu öğretici, VBA'da iç içe If ifadelerinin nasıl kullanılacağını gösterecektir.

İfadeler, koşulun Doğru veya Yanlış olup olmadığını görmek için VBA'da tek bir koşulu test etmenize izin veriyorsa ve cevaba bağlı olarak kod, doğru ifade veya yanlış ifade yönünde hareket edecektir.

Tek bir EĞER ifadesi

1234567891011 Alt TestIfTamsayı olarak x karartx = 10x = 10 ise'x 10 ise, koşul doğrudurMsgBox x 10"Başka'x 10 değilse, koşul yanlıştırMsgbox "x 10 değil"BitirAlt Bitiş

İç içe geçmiş IF'ler açıklandı

İç İçe If, ​​orijinal If'nin True ve/veya False ifadelerinin her birinin İÇERİSİNE birden çok koşul koymanıza izin verir.

1234567891011121314151617181920212223242526 Alt TestNestedIf()Tamsayı olarak x karartTamsayı olarak Dim yTamsayı olarak Dim zx = 10y = 9z = 8x = 10 ise'x 10 ise, koşul doğrudur, bu nedenle y için test ediny = 8 iseMsgBox "y 9'dur"Başka'y 10 değilse, koşul yanlıştırMsgbox "y 9 değil"BitirBaşka'x 10 değilse, koşul yanlıştır, öyleyse hadi' z için test edelimz = 8 iseMsgBox "z 8'dir"Başka'z 8 değilse, koşul yanlıştırMsgbox "z 10 değil"Bitir'Başka bir Son If, orijinali kapatmak için gerekirseBitirAlt Bitiş

Kodunuzu yazarken girintilemek her zaman iyi bir uygulamadır, çünkü bir aşamada geri dönmeniz gerektiğinde veya başka bir programcının okuması gerektiğinde kodun okunmasını ve takip edilmesini kolaylaştırır.

Ayrıca, kullanıcı tarafından tasarlanmış bir işlev (UDF) oluşturabilir ve parametreleri kullanarak bazı hücrelerin değerlerini Excel'den işleve çağırabiliriz.

1234567891011121314151617181920 String olarak GetIf(x tamsayı, y tamsayı, z tamsayı) işlevix = 10 ise'x 10 ise, koşul doğrudur, bu nedenle y için test ediny = 8 iseGetIf= "y 9'dur"Başka'y 10 değilse, koşul yanlıştırGetIf="y 9 değil"BitirBaşka'x 10 değilse, koşul yanlıştır, öyleyse hadi' z için test edelimz = 8 iseGetIf="z 8'dir"Başka'z 8 değilse, koşul yanlıştırGetIf="z 10 değil"Bitir'Başka bir Son If, orijinali kapatmak için gerekirseBitirBitiş İşlevi

Pratik ise İç İçe Örnek

Aşağıdaki işlevi göz önünde bulundurun:

12345678910111213141516171819202122 İşlev GetDiscount(dblPrice As Double) As DoubledblPrice >= 1000 ise'fiyat 1000'den büyükse, bir indirim atayındblPrice >= 2000 ise2000'den fazla ise %10 indirimGetDiscount = dblPrice * 0.1Başka'aksi takdirde% 5 indirim verGetDiscount = dblPrice * 0.05Bitir'fiyat 1000'den büyük değilseBaşka'500'den fazla ise %2,5 indirim yapındblPrice >= 500 iseGetDiscount = dblPrice * 0.025Başka'aksi takdirde indirim yokGetIndirim = 0Bitir'Başka bir Son If, orijinali kapatmak için gerekirseBitirBitiş İşlevi

Bu işlevi bir Excel sayfasında kullanarak, bir siparişin toplam fiyatını görmek için test edebilir ve bu toplama bağlı olarak farklı indirimler uygulayabiliriz.

VBA Programlama | Code Generator sizin için çalışıyor!

ElseIf'i kullanma

ElseIf, kodunuzu basitleştirmemize olanak tanır, çünkü yalnızca ikinci if ifadesine, ilki false döndürürse geçer.

12345678910111213141516 İşlev GetDiscount(dblPrice As Double) As Double'kod yazmayı azaltmak için else'i kullanındblPrice >= 2000 iseGetDiscount = dblPrice * 0.1ElseIf dblPrice >= 1000 O zamanGetDiscount = dblPrice * 0.075ElseIf dblPrice >= 500 O zamanGetDiscount = dblPrice * 0.05ElseIf dblPrice >= 200 O zamanGetDiscount = dblPrice * 0.025ElseIf dblPrice >= 100 O zamanGetDiscount = dblPrice * 0.01BaşkaGetIndirim = 0BitirBitiş İşlevi

Vaka Bildirimi Kullanma

Aynı etkiyi elde etmek için bir Vaka Bildirimi de kullanabiliriz.

1234567891011121314151617 İşlev GetDiscount(dblPrice As Double) As DoubleVaka Seç dblPrice'bu vaka bildiriminde 6 farklı indirim seviyesi varVaka >= 2000GetDiscount = dblPrice * 0.1Vaka >= 1000GetDiscount = dblPrice * 0.075Vaka >= 500GetDiscount = dblPrice * 0.05Vaka >= 200GetDiscount = dblPrice * 0.025Vaka >= 100GetDiscount = dblPrice * 0.01Durum BaşkaGetIndirim = 0Seçimi BitirBitiş İşlevi

Arkadaşlarınızla sayfasını paylaşan sitenin gelişimine yardımcı olacak

wave wave wave wave wave