VBA Maçı - VBA Excel'de Eşleştirme İşlevi Nasıl Kullanılır? (Örnekler)

İçindekiler

Arama işlevleri olarak çalışma sayfasında Dizin ve Eşleşme olduğu gibi, VBA'daki Eşleştirme işlevlerini de arama işlevi olarak kullanabiliriz, bu işlev bir çalışma sayfası işlevidir ve uygulama tarafından erişilir. çalışma sayfası yöntemi ve bir çalışma sayfası işlevi olduğu için Match işlevi için argümanlar çalışma sayfası işlevine benzer.

VBA Match İşlevi

VBA Match işlevi, tablo dizisindeki, yani ana excel tablosundaki arama değerinin konumunu veya satır numarasını arar.

Bir çalışma sayfasında, arama işlevleri excel'in ayrılmaz bir parçasıdır. Önemli arama işlevlerinden bazıları DÜŞEYARA, YATAYARA, İNDİS ve KAÇINCI'dır. Ne yazık ki, bu işlevlere VBA işlevleri olarak sahip değiliz. Ancak bunları VBA'da çalışma sayfası işlevleri olarak kullanabiliriz.

Bu makalede, bir çalışma sayfası işlevi olarak VBA'da MATCH çalışma sayfası arama işlevinden birini nasıl kullanacağınızı göstereceğim.

VBA Excel'de MATCH Fonksiyonu Nasıl Kullanılır?

VBA'da Excel MATCH işlevini kullanmanın basit bir örneğini göstereceğiz.

Örnek 1

VBA'da, bu MATCH formülünü excel'de bir çalışma sayfası işlevi olarak kullanabiliriz. VBA'da MATCH işlevini kullanmak için aşağıdaki adımları izleyin.

Adım 1: Bir makro adı vererek bir alt prosedür oluşturun.

Kod:

Alt Eşleme_Örneği1 ()

Adım 2: E2 hücresinde sonuca ihtiyacımız var, bu nedenle kodu Aralık ("E2") olarak başlatın. Değer =

Kod:

Alt Eşleştirme_Örneği1 () Aralık ("E2"). Değer = Son Alt

Adım 3: E2'de hücre değeri, KAÇINCI formülünün sonucu olmalıdır. Bu nedenle, VBA MATCH işlevine erişmek için önce "WorksheetFunction" özelliğini kullanmamız gerekir. Bu özellikte, mevcut tüm çalışma sayfası işlev listesini alacağız.

Adım 4: Burada MATCH işlevini seçin.

Kod:

Alt Match_Example1 () Aralık ("E2"). Değer = Çalışma SayfasıFonksiyonu.Match (End Sub

Adım 5: Şimdi, tam sözdizimi adını alamadığımız için sorun başlıyor. Bunun yerine, bu şekilde "Arg1, Arg2, Arg3" olarak sözdizimi elde ederiz. Yani buradaki sözdizimlerinden kesinlikle emin olmalısınız.

İlk argümanımız LOOKUP VALUE. ARA DEĞERİMİZ D2 hücresindedir, bu nedenle hücreyi Aralık ("D2") olarak seçin. Değer .

Kod:

Alt Match_Example1 () Aralık ("E2"). Değer = Çalışma SayfasıFonksiyonu.Match (Aralık ("D2"). Değer, Son Alt

Adım 6: İkinci argüman Tablo Dizisidir. Tablo dizisi aralığımız A2'den A10'a kadardır. Bu nedenle aralığı "Aralık (" A2: A10 ")" olarak seçin

Kod:

Alt Eşleşme_Örneği1 () Aralık ("E2"). Değer = Çalışma SayfasıFonksiyonu.Match (Aralık ("D2"). Değer, Aralık ("A2: A10"), Son Alt

Adım 7: Şimdi, son argüman MATCH TYPE. Tam bir eşleşmeye ihtiyacımız var, bu nedenle bağımsız değişken değerini sıfır olarak girin.

Kod:

Alt Eşleştirme_Örneği1 () Aralık ("E2"). Değer = Çalışma SayfasıFonksiyonu.Match (Aralık ("D2"). Değer, Aralık ("A2: A10"), 0) Son Alt

Makroyu çalıştırın, D2 hücresinde yıl adı ne olursa olsun konumunu alacağız.

Örnek 2 - Başka Bir Sayfadan VBA Eşleşmesi

Yukarıdakilerden aynı veri setinin iki farklı sayfada olduğunu varsayalım. Örneğin, tablo dizisi "Veri Sayfası" adlı sayfa adında ve Arama Değeri, "Sonuç Sayfası" adlı sayfa adında bulunur.

Bu durumda, aralıklara atıfta bulunmadan önce çalışma sayfalarına isimleriyle başvurmamız gerekir. Aşağıda, sayfa adlarına sahip kod seti bulunmaktadır.

Kod:

Alt Match_Example2 () Sayfalar ("Sonuç Sayfası"). Aralık ("E2"). Değer = Çalışma Sayfası İşlevi.Match (Sayfalar ("Sonuç Sayfası"). Aralık ("D2"). Değer, Sayfalar ("Veri Sayfası"). Aralık ("A2: A10"), 0) End Sub

Örnek 3 - Döngülerle VBA Match İşlevi

İstediğimiz sonuç tek bir hücrede ise sorun yok ama sonucun birden fazla hücrede gelmesi gerekiyorsa, tüm hücrelerde sonucu almak için bir VBA döngüsü kullanmamız gerekir.

Bunun gibi bir veriye sahip olduğunuzu varsayın.

Bu durumlarda, uzun kodlar yazmak müthiş bir görevdir, bu yüzden döngülere geçiyoruz. İşi bizim için yapacak olan kod seti aşağıdadır.

Kod:

Sub Match_Example3 () Dim k As Integer For k = 2 to 10 Cells (k, 5) .Value = WorksheetFunction.Match (Cells (k, 4) .Value, Range ("A2: A10"), 0) Sonraki k Son Alt

Bu kod seti sonucu sadece göz açıp kapayıncaya kadar alır.

Ilginç makaleler...