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

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir