İçindekiler
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.xlsmVBA 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.