Vba'da ifna nasıl kullanılır (örnekle)
Bir formülün #YOK hatası oluşturması durumunda belirli bir değer döndürmek için VBA’da IfNa yöntemini kullanabilirsiniz.
IfNa’yı pratikte kullanmanın yaygın bir yolu:
Sub UseVLOOKUP()
With Application
Range(" F2 ").Value = .IfNa(.Vlookup(Range(" E2 "), Range(" A2:C11 "),3,False), "No Value Found")
End With
End Sub
Bu özel makro, E2 hücresindeki A2:C11 aralığındaki değeri bulmak için DÜŞEYARA işlevini kullanmaya çalışır.
E2 hücresindeki değer bulunamazsa formül #YOK sonucunu verir.
Ancak #N/A yerine “No Value Found” döndürmek için IfNa yöntemini kullanabiliriz.
Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.
Örnek: VBA’da IfNa nasıl kullanılır?
Diyelim ki Excel’de çeşitli basketbol oyuncuları hakkında bilgiler içeren aşağıdaki veri kümesine sahibiz:
Diyelim ki veri kümesinde “Kings” takım adını aramak ve asist sütununda karşılık gelen değeri döndürmek istiyoruz.
Bunun için aşağıdaki makroyu oluşturabiliriz:
Sub UseVLOOKUP()
With Application
Range(" F2 ").Value = .IfNa(.Vlookup(Range(" E2 "), Range(" A2:C11 "),3,False), "No Value Found")
End With
End Sub
Bu makroyu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz:
Makro, Krallar için doğru bir şekilde 3 asist değerini döndürüyor.
Şimdi E2 hücresindeki takım adını veri kümesinde bulunmayan “Grizzlies” olarak değiştirdiğimizi varsayalım.
Bu makroyu tekrar çalıştırdığımızda “Değer bulunamadı” sonucunu döndürecektir çünkü DÜŞEYARA işlevi #YOK hatasıyla sonuçlanırsa döndürülmesi gereken değer belirttiğimiz değerdir.
Grizzlies takım sütununda bulunmadığından makro “Değer bulunamadı” ifadesini döndürür.
Not : VBA IfNa yönteminin tam belgelerini burada bulabilirsiniz.
Ek kaynaklar
Aşağıdaki eğitimlerde VBA’da diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:
VBA: Dizin eşleştirme nasıl kullanılır?
VBA: Bir sayfayı birden çok sütuna göre sıralama
VBA: bir dizenin başka bir dize içerip içermediği nasıl kontrol edilir