Excel'de VBA Kullanarak Tam Eşleşme Nasıl Bulunur (5 Yol)

  • Bunu Paylaş
Hugh West

Tam eşleşmeyi bulmanın en kolay yollarından bazılarını arıyorsanız VBA O zaman bu makaleyi faydalı bulacaksınız. Öyleyse, makaleye başlayalım ve tam eşleşme bulmanın yollarını öğrenelim.

Çalışma Kitabını İndirin

VBA Tam Eşleşmeyi Bul.xlsm

VBA Kullanarak Tam Eşleşmeyi Bulmanın 5 Yolu

Bazı öğrencilerin sonuçlarının kayıtlarını içeren aşağıdaki tabloyu kullandım. Bu tabloyu kullanarak tam eşleşmeyi bulmanın farklı yollarını aşağıdakilerin yardımıyla açıklayacağım VBA.

Bu amaçla Microsoft Excel 365 sürümünü kullandım, siz uygunluğunuza göre diğer sürümleri de kullanabilirsiniz.

Yöntem-1: Bir Hücre Aralığında Tam Eşleşmeyi Bulma

Bir öğrencinin adı gibi bir dizenin tam eşleşmesini bulmak ve ardından bu öğrencinin hücre konumunu bulmak istiyorsanız, bu yöntemi izleyerek bunu yapabilirsiniz.

Burada, adı verilen öğrenci için tam bir eşleşme bulacağım "Joseph Micahel" .

Adım-01 :

➤ Şuraya git Geliştirici Tab>> Visual Basic Opsiyon

O zaman Visual Basic Düzenleyicisi açılacak.

➤ Şuraya git Ekleme Tab>> Modül Opsiyon

Bundan sonra, bir Modül oluşturulacaktır.

Adım-02 :

➤ Aşağıdaki kodu yazın

 Sub searchtxt() Dim rng As Range Dim str As String Set rng = Sheets("exact match").Range("B5:B10").Find("Joseph Michael", LookIn:=xlValues) If Not rng Is Nothing Then str = rng.Address MsgBox (rng & " in " & str) End If End Sub 

İşte, "tam eşleşme" sayfa adı ve "B5:B10" öğrencilerin isimlerinin aralığıdır ve "Joseph Michael" bulunacak olan öğrencinin adıdır.

rng bir aralık nesnesi olarak bildirilir ve str aranan öğenin adresini saklamak için bir dize değişkeni olarak.

Bu EĞER deyimi öğenin adresini str değişken.

Basın F5

Sonuç :

Bundan sonra, aşağıdakileri alacaksınız Mesaj Kutusu adlı öğrencinin hücre konumunu içeren "Joseph Michael" .

Daha fazlasını okuyun: Excel'de VBA ile Bir Aralık İçinde Bulma: Tam ve Kısmi Eşleşmeleri Dahil Etme

Yöntem-2: Tam Eşleşmeyi Bulma ve VBA Kullanarak Değiştirme

Belirtilen öğrencinin adını bulmanın ve ardından başka bir adla değiştirmenin yolunu göstereceğim çünkü bir şekilde yanlışlıkla bu ad buraya yazılmıştır. istediğiniz dizeyi bulun ve değiştirin Bu yöntemi izleyerek.

Adım-01 :

Takip et Adım-01 . Yöntem-1

 Sub FindandReplace() Dim rng As Range Dim str As String With Worksheets("find&replace").Range("B5:B10") Set rng = .Find("Donald Paul", LookIn:=xlValues) If Not rng Is Nothing Then str = rng.Address Do rng.Value = Replace(rng.Value, "Donald Paul", "Henry Jackson") Set rng = .FindNext(rng) Loop While Not rng Is Nothing End If End With End Sub 

İşte, "bul&değiştir" sayfa adı ve "B5:B10" öğrencilerin isimlerinin aralığıdır ve "Donald Paul" bulunacak olan öğrencinin adıdır ve daha sonra "Henry Jackson" önceki ad yerine öğrencinin adı olacaktır.

İLE deyimi, kod parçasının her deyimde tekrarlanmasını önleyecektir.

Bu EĞER deyimi öğenin adresini str değişkeni ve DO döngüsü, arama sözcüğünün tüm geçtiği yerleri değiştirecektir.

Basın F5

Sonuç :

Bundan sonra, yeni öğrencinin adını şu şekilde alacaksınız "Henry Jackson" .

Yöntem-3: Tam ve Harfe Duyarlı Eşleşme Bulma

Büyük/küçük harfe duyarlı bir eşleşme bulmak istiyorsanız bu yöntemi izleyin. Burada, birbirine benzeyen iki isim var ancak büyük/küçük harf farkı var ve büyük/küçük harfe bağlı olarak son öğrencinin adını değiştireceğim.

Adım-01 :

Takip et Adım-01 . Yöntem-1

 Sub exactmatch() Dim rng As Range Dim str As String With Worksheets("case-sensitive").Range("B5:B10") Set rng = .Find("Donald Paul", LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True) If Not rng Is Nothing Then str = rng.Address Do rng.Value = Replace(rng.Value, "Donald Paul", "Henry Jackson") Set rng = .FindNext(rng) Loop While Not rng Is Nothing End If End With EndAlt 

İşte, "büyük/küçük harfe duyarlı" sayfa adı ve "B5:B10" öğrencilerin isimlerinin aralığıdır ve "Donald Paul" bulunacak olan öğrencinin adıdır ve ardından "Henry Jackson" önceki ad yerine öğrencinin adı olacaktır.

İLE deyimi, kod parçasının her deyimde tekrarlanmasını önleyecektir.

Bu EĞER deyimi öğenin adresini str değişkeni ve DO döngüsü, arama sözcüğünün tüm geçtiği yerleri değiştirecektir.

Basın F5

Sonuç :

Şimdi, davaya göre, öğrencinin adı şu şekilde değiştirilecek "Henry Jackson" .

Benzer Okumalar:

  • Excel'de VBA Kullanarak Bir Hücredeki Dizeyi Bulma (2 Yöntem)
  • VBA Excel'de Sütun İçinde Bulma (7 Yaklaşım)
  • Excel'de VBA ile String Nasıl Bulunur (8 Örnek)

Yöntem-4: InStr fonksiyonunu kullanma

Diyelim ki, eşleştirmek istiyorsunuz Geçmek veya Yazışma yapmamak bağlı olarak öğrencilerin isimlerine Sonuç sütunu nerede Geçmek veya Başarısız yazılmıştır. Bu dizeyi bulmak için Sonuç sütunu ve yaz "Geçti" içinde Durum sütunu Sınavı geçen öğrenciler için InStr fonksiyonu .

Adım-01 :

Takip et Adım-01 . Yöntem-1

 Sub Checkstring() Dim cell As Range For Each cell In Range("C5:C10") If InStr(cell.Value, "Pass")> 0 Then cell.Offset(0, 1).Value = "Passed" Else cell.Offset(0, 1).Value = " " End If Next cell End Sub 

Burada, hücre aralığı C5:C10 ki bu da Sonuç sütunu

InStr(hücre. değer, "Geçer")> 0 sayının sıfırdan büyük olduğu durumdur (hücre aşağıdakileri içerdiğinde "Pas" ) sonra aşağıdaki satır devam edecek ve bitişik hücredeki çıktıyı şu şekilde verecektir Geçti .

Koşulun yanlış olması, hücrenin hiçbir şey içermediği anlamına gelir "Pas" altındaki satır ELSE yürütülecek ve bitişik hücredeki çıktı değerini şu şekilde verecektir Boş .

Bu döngü her hücre için devam edecektir.

Basın F5

Sonuç :

O zaman, şu mesajı alacaksınız "Geçti" geçen öğrenciler için statü.

Yöntem-5: Tam Eşleşmeyi Bulma ve Verileri Çıkarma

Adlı bir öğrenci için ilgili verileri ayıklamak istiyorsanız "Michael James" o zaman bu yöntemi takip edebilirsiniz.

Adım-01 :

Takip et Adım-01 . Yöntem-1

 Sub Extractdata() Dim lastusedrow As Long Dim i As Integer, icount As Integer lastusedrow = ActiveSheet.Range("B100").End(xlUp).Row For i = 1 To lastusedrow If InStr(1, Range("B" & i), "Michael James")> 0 Then icount = icount + 1 Range("E" & icount & ":G" & icount) = Range("B" & i & ":D" & i).Value End If Next i End Sub 

Burada şunları kullandım B100 olarak Aktif Sayfa Aralığı (kullanımınıza göre herhangi bir aralığı kullanabilirsiniz).

InStr(1, Range("B" & i), "Michael James")> 0 sütunundaki hücrenin B içerir Michael James .

Range("E" & icount & ":G" & icount) çıktı verilerinizi istediğiniz aralık ve Range("B" & i & ":D" & i).value sütunundan değerleri verecektir B için D .

Basın F5

Sonuç :

Daha sonra, isme sahip öğrenciler için aşağıdaki çıkarılmış verileri alacaksınız Michael James .

Uygulama Bölümü

Kendi kendinize pratik yapmanız için bir Uygulama adlı bir sayfada aşağıdaki gibi bir bölüm Uygulama Lütfen bunu kendiniz yapın.

Sonuç

Bu makalede, tam eşleşmeyi bulmanın en kolay yollarını ele almaya çalıştım. VBA Umarım faydalı bulursunuz. Herhangi bir öneriniz veya sorunuz varsa, bunları bizimle paylaşmaktan çekinmeyin.

Hugh West, sektörde 10 yılı aşkın deneyime sahip oldukça deneyimli bir Excel eğitmeni ve analistidir. Muhasebe ve Finans alanında lisans derecesine ve İşletme alanında yüksek lisans derecesine sahiptir. Hugh öğretme tutkusuna sahiptir ve takip etmesi ve anlaması kolay benzersiz bir öğretim yaklaşımı geliştirmiştir. Excel konusundaki uzman bilgisi, dünya çapında binlerce öğrencinin ve profesyonelin becerilerini geliştirmesine ve kariyerlerinde başarılı olmasına yardımcı olmuştur. Hugh, blogu aracılığıyla bilgisini dünyayla paylaşıyor, bireylerin ve işletmelerin tam potansiyellerine ulaşmalarına yardımcı olmak için ücretsiz Excel eğitimleri ve çevrimiçi eğitimler sunuyor.