Excel VBA Bul
Normal bir çalışma sayfasında Bul'u kullandığımızda CTRL + F klavye kısayoluna basıyoruz ve bulmamız gereken verileri yazıyoruz ve eğer istenmiyorsa bir sonraki eşleşmeye gidiyoruz, bu tür çok sayıda eşleşme varsa bu sıkıcı bir iştir, ancak ne zaman VBA'da FIND kullanıyoruz, görevleri bizim için yapıyor ve bize tam eşleşmeyi veriyor ve üç argüman alıyor, biri ne bulmalı, nerede bulmalı ve nereye bakmalı.
VBA'ya geçmeden ve makrolarda bulma işlevini kullanmaya başlamadan önce, önce excel'de bulma işlevinin ne olduğunu öğrenmemiz gerekiyor. Normal excel'de, düzenleme grubunun altındaki Giriş sekmesinde, bir hücre aralığında veya tüm çalışma sayfasındaki bir dizeyi veya değeri bulmak için kullanılan bir bulma işlevi bulabiliriz.
Buna tıkladığımızda karşımıza iki seçenek çıkıyor;
Birini bulmak çok kolay
Ayrıca başka bir özelliği açan bir seçenek modu olduğunu da görebiliriz.
Bul algoritmasını dört kısıtlama ile yapar: Ne, İçinde, Ara ve Bak.
Excel'deki ikinci seçenek, bir dizge bulduğumuzda kullanılan, ancak onu başka bir değerle ne değiştireceğimizi Bul ve değiştirmektir.
İşlev Sözdizimini Bul
Temel excel'de Bul'un ne olduğunu yukarıda öğrendik. VBA'da kodları manuel olarak yazıyoruz, ancak özellikler normal excel ile aynı. İlk önce sözdizimine bakalım.
İfade Bul (Ne, bak,….)
Eğer aradığımız değer excel fonksiyonu ile bulunursa, değerin olduğu hücreyi döndürür ve eğer değer bulunamazsa, fonksiyonun nesnesi sıfıra ayarlanır.
Makrolardaki ifadeler, aralık 1 veya aralık 2 gibi tanımlanmış aralıklardır. Belirli bir değeri aramak istediğimiz şey için anahtar sözcük nedir? Lookin, aramaya çalıştığımız şey için bir anahtar kelimedir, bir yorum mu, bir formül veya bir dize mi. Benzer şekilde, Find işlevinde isteğe bağlı olan başka kısıtlamalar da vardır. Gerekli olan tek alan, aramaya çalıştığımız bir değerdir.
Temel olarak, VBA, Excel'in gerekli bir bağımsız değişkenine sahip olduğunu bulur, bu da Aramak istediğimiz değerdir. Kısıtlamaların geri kalanı isteğe bağlıdır ve bulma işlevinde birçok kısıtlama vardır. Find işlevi, bir bulma işlevinin excel'de ne olduğuna benzer.
Bul işlevinin parametresi, bir değer bulmak istediğimiz aralıkta olduğu gibi hücre aralığıdır. Birkaç sütun veya birkaç hücre veya tam bir çalışma sayfası olabilir.
Örnekler
Örnek 1
Verilerimizin aşağıdaki değerlere sahip olduğunu varsayalım
Aynı verilerde “Aran” ı bulmaya çalışacağız.
- Bir VBA kodu yazmak için, VBA Kodları yazabilmek için excel'de geliştirici sekmesinin etkinleştirilmesi gerekir.
- Aşağıda gösterildiği gibi aşağıdaki kodu yazarak kodumuzu yazmaya başlıyoruz,
DimFindS As String
Dim
Rng As Range FindS = InputBox ("Aramak istediğiniz değeri girin")
Sayfalarla ("Sayfa1"). Aralık ("A: A")
- Örnek, sub'a verilen fonksiyon adıdır.
- Bul, girmek istediğimiz kullanıcının aramasını istediğimiz dizedir.
- Rng, aralık için aldığımız değişkendir.
- Şimdi kullanıcıdan aşağıdaki ekran görüntüsüne benzeyen değeri girmesini istiyoruz,
- Şimdi modülde bul fonksiyonumuzu tanımlayacağız.
- Fonksiyon, kullanıcı tarafından verilen aralıkta girilen değeri bulur.
- Şimdi aşağıdaki argümanlarla fonksiyonu kapatıyoruz.
- Şimdi, önce kodumuzu çalıştırırsak, kullanıcıdan bir değer istemi ister.
- Kod tamamlandığında, hücreyi verilerin bulunduğu yere döndürür.
Örnek 2
Yukarıdaki örnekte dört benzersiz ad vardı, ancak aşağıdaki verileri göz önünde bulundurmak gibi verilerde birden fazla ad varsa
Yukarıdaki verilerde Aran isminin iki kez tekrarlandığını görüyoruz. Excel'in Aran adını bulması gerekiyorsa, onu A2 hücresinde bulacak ve duracaktır, ancak A6 hücresindeki A2'ye benzer başka bir değer vardır. Bu değer nasıl elde edilir? İşte yardımda Bul (Ne, Sonra) sözdizimi geliyor.
Hücreyi tanımladıktan sonra, referanstan sonra verileri aramak istiyoruz.
Yukarıdaki veriler için kodu yazalım.
- Her zaman geliştirici sekmesini seçeneklerden etkinleştirmeyi ve ardından kodu VBA'da yazabilmek için excel'de şeridi özelleştirmeyi unutmayın.
- VBA'da kodları yazdığımız bir modül olan Microsoft excel nesnelerini alıyoruz.
- Daha önce sayfa 1 üzerinde çalışıyorduk; şimdi, sayfa 2 üzerinde çalışıyoruz, bu nedenle başka bir modül için sayfa 2'yi seçin ve boş bir sayfa görünür.
- Şimdi fonksiyonu önce SUB Sample2 () olarak tanımlayarak kodu yazmaya başlayın ve enter tuşuna basın.
- Şimdi fonksiyonumuzu tanımladık; Değişkenlerimizi tanımlayan ana kısma geçmeye başlayacağız.
- Find değişkeninin neye sahip olması gerektiğini tanımlayın,
- Bu örnekte 2. sayfa olan üzerinde çalıştığımız sayfaları seçin,
- Şimdi kullanıcının A2 hücresinden sonra girdiği metni bulacağız, bu yüzden bulma fonksiyonumuzu aşağıdaki gibi tanımlıyoruz,
- Şimdi ile ve if koşullarını bitirerek kodu kapatıyoruz.
Yukarıdaki kodun yaptığı şey, A2 hücresinden sonraki dizeyi aramak ve bulunduğu yere hücreyi döndürmektir.
Hatırlanacak şeyler
- İlk önce, VBA'yı kullanabilmek için geliştirici sekmesini etkinleştirmemiz gerekiyor.
- Bulmamız gereken spesifik değer nedir?
- Değer bulunmazsa, işlevin nesnesi sıfıra ayarlanır.