İçindekiler
Eğitimde, VBA kullanılarak bir hücre içindeki yinelenen sözcüklerin veya metin dizelerinin nasıl vurgulanacağı gösterilmektedir.
Excel Koşullu Biçimlendirme, yinelenenleri aklınıza gelebilecek her şekilde vurgulamanızı mümkün kılar: 1. tekerrür olsun veya olmasın, tek bir sütunda veya birden çok sütunda, ardışık yinelenen hücrelerde ve bir anahtar sütundaki aynı değerlere dayalı olarak tüm satırlarda. Ancak, her zamanki gibi bir "ama" vardır. Koşullu biçimlendirme kuralları hücre düzeyinde çalışırken, yinelenenleri vurgulamak isteyebilirsinizBu yalnızca makrolarla yapılabilir. VBA ile ilgili herhangi bir deneyiminiz olmasa bile, lütfen bu sayfayı kapatmak için acele etmeyin. Burada, kullanıma hazır kod örneklerini ve bunları çalışma sayfalarınızda nasıl kullanacağınıza ilişkin ayrıntılı talimatları bulacaksınız.
Bir hücredeki yinelenen sözcükleri metin durumunu göz ardı ederek vurgulayın
Bu örnekte, bir hücre içindeki yinelenen sözcüklerin veya metin dizelerinin aşağıdaki resimde gösterildiği gibi kırmızı yazı tipi rengiyle nasıl gölgelendirileceği gösterilmektedir. Lütfen küçük ve büyük harflerin aynı karakterler olarak değerlendirildiğine dikkat edin. Örneğin, turuncu , TURUNCU ve Turuncu aynı kelime olarak kabul edilir.
Makronun kodu aşağıdaki gibidir:
Public Sub HighlightDupesCaseInsensitive() Dim Cell As Range Dim Delimiter As String Delimiter = InputBox( "Hücredeki değerleri ayıran sınırlayıcıyı girin" , "Sınırlayıcı" , ", " ) For Each Cell In Application.Selection Call HighlightDupeWordsInCell(Cell, Delimiter, False ) Next End Sub Sub HighlightDupeWordsInCell(Cell As Range, Optional Delimiter As String = " " , Optional CaseSensitive AsBoolean = True ) Dim text As String Dim words() As String Dim word As String Dim wordIndex, matchCount, positionInText As Integer If CaseSensitive Then words = Split(Cell.Value, Delimiter) Else words = Split(LCase(Cell.Value), Delimiter) End If For wordIndex = LBound (words) To UBound (words) - 1 word = words(wordIndex) matchCount = 0 For nextWordIndex = wordIndex + 1 To UBound (words) If word =words(nextWordIndex) Then matchCount = matchCount + 1 End If Next nextWordIndex If matchCount> 0 Then text = "" For Index = LBound (words) To UBound (words) text = text & words(Index) If (words(Index) = word) Then Cell.Characters(Len(text) - Len(word) + 1, Len(word)).Font.Color = vbRed End If text = text & Delimiter Next End If Next wordIndex End SubHücredeki yinelenen metni büyük/küçük harfe duyarlı olarak vurgulama
Çoğu durumda, Excel'de metin girişleriyle çalışırken harf büyüklüğünü göz ardı etme eğilimindeyiz. Bununla birlikte, belirli koşullar altında, metin büyüklüğü önemlidir. Örneğin, kimlikler, parolalar veya bu türden diğer kayıtlarla uğraşıyorsanız, aşağıdaki gibi dizeler 1-AA , 1-aa ve 1-Aa mükerrer değildir ve vurgulanmamalıdır:
Bu durumda, kodun aşağıdaki sürümünü kullanın:
Public Sub HighlightDupesCaseSensitive() Dim Cell As Range Dim Delimiter As String Delimiter = InputBox( "Bir hücredeki değerleri ayıran sınırlayıcıyı girin" , "Sınırlayıcı" , ", " ) For Each Cell In Application.Selection Call HighlightDupeWordsInCell(Cell, Delimiter, True ) Next End Sub Sub HighlightDupeWordsInCell(Cell As Range, Optional Delimiter As String = " " , Optional CaseSensitive AsBoolean = True ) Dim text As String Dim words() As String Dim word As String Dim wordIndex, matchCount, positionInText As Integer If CaseSensitive Then words = Split(Cell.Value, Delimiter) Else words = Split(LCase(Cell.Value), Delimiter) End If For wordIndex = LBound (words) To UBound (words) - 1 word = words(wordIndex) matchCount = 0 For nextWordIndex = wordIndex + 1 To UBound (words) If word =words(nextWordIndex) Then matchCount = matchCount + 1 End If Next nextWordIndex If matchCount> 0 Then text = "" For Index = LBound (words) To UBound (words) text = text & words(Index) If (words(Index) = word) Then Cell.Characters(Len(text) - Len(word) + 1, Len(word)).Font.Color = vbRed End If text = text & Delimiter Next End If Next wordIndex End SubExcel'de yinelenen sözcükleri vurgulamak için makrolar nasıl kullanılır?
VBA kullanmaya yeni başlayan biriyseniz, aşağıdaki adım adım talimatlar size rahatça yol gösterecektir. Deneyimli kullanıcılar sadece indirme bağlantısını seçip gerisini atlayabilir :)
Kodu çalışma kitabınıza ekleyin
Makronun kodunu Excel çalışma kitabınıza eklemekle başlarsınız. İşte nasıl yapılacağı:
- Yinelenenleri vurgulamak istediğiniz çalışma kitabını açın.
- Visual Basic Düzenleyicisini açmak için Alt + F11 tuşlarına basın.
- Sol bölmede, sağ tıklayın BuÇalışmaKitabı ve seçin Ekleme > Modül bağlam menüsünden.
- Kodu Kod penceresine yapıştırın.
- Makroyu ileride kullanmak üzere saklamak için, çalışma kitabınızı makro özellikli bir .xlsm dosyası olarak kaydettiğinizden emin olun.
Alternatif olarak, örnek çalışma kitabımızı indirebilir ve makroyu buradan çalıştırabilirsiniz. Örnek çalışma kitabı aşağıdaki makroları içerir:
- HighlightDupesCaseInsensitive - harf büyüklüğünü göz ardı ederek bir hücre içindeki kopyaları gölgeler.
- HighlightDupesCaseSensitive - harf durumunu göz önünde bulundurarak bir hücredeki kopyaları vurgular.
Daha fazla bilgi için lütfen Excel'de VBA kodu ekleme bölümüne bakın.
Makroyu çalıştırın
Kendi çalışma kitabınıza eklediğiniz kodla veya örnek dosyamızı indirip açarak makroyu bu şekilde çalıştırın:
- Çalışma sayfanızda, yinelenen metni vurgulamak istediğiniz hücreleri seçin. Bu, bir aralık veya birden çok bitişik olmayan aralık olabilir.
- Alt + F8 tuşlarına basın.
- İlgili makroyu seçin ve Koşmak .
- Makro, seçilen hücrelerdeki değerleri ayıran sınırlayıcıyı belirtmenizi isteyecektir. Önceden ayarlanmış sınırlayıcı (bizim durumumuzda virgül ve boşluk) giriş kutusunda otomatik olarak görünecektir. İhtiyaçlarınıza bağlı olarak, varsayılan sınırlayıcıyı bırakabilir veya farklı bir sınırlayıcı yazabilir ve ardından Tamam'a tıklayabilirsiniz.
Bir dakika sonra, seçilen hücrelerdeki tüm yinelenen dizeler kırmızı renkte (veya kodunuzda hangi yazı tipi rengi ayarlanmışsa) gölgelenecektir.
İpucu. Hızlıca kopyaları kaldırın bir hücre içinde, Ultimate Suite'imizde bulunan birçok zaman kazandıran araçtan biri olan Yinelenen Alt Dizeleri Kaldır'ı kullanabilirsiniz.
Kodu ihtiyaçlarınıza göre nasıl ayarlayabilirsiniz?
Bu kullanım notları ve çok temel VBA bilgisi ile (veya sadece aşağıdaki talimatları yakından takip ederek), kodları ihtiyaçlarınıza tam olarak uygun şekilde kolayca değiştirebilirsiniz.
Aynı modül üzerine yerleştirin
Fark edebileceğiniz gibi, her iki makro ( HighlightDupesCaseSensitive ve HighlightDupesCaseInsensitive ) çağrı HighlightDupeWordsInCell Yukarıdaki iki makro arasındaki fark yalnızca söz konusu işleve aktarılan 3. parametrede (CaseSensitive) bulunmaktadır.
Büyük/küçük harfe duyarlı arama için TRUE olarak ayarlanır:
HighlightDupeWordsInCell(Cell, Delimiter, True) öğesini çağırın
Büyük/küçük harfe duyarlı olmayan arama için FALSE olarak ayarlanır:
HighlightDupeWordsInCell(Cell, Delimiter, False) öğesini çağırın
Makroların çalışması için HighlightDupeWordsInCell işlevi makrolarla aynı modüle yerleştirilmelidir.
Sınırlayıcı
Makro çalıştırıldığında, seçilen hücrelerdeki sözcükleri/dizeleri ayıran sınırlayıcıyı belirtmenizi isteyecektir. Varsayılan sınırlayıcı virgül ve boşluktur (", ") ve InputBox'ta önceden ayarlanmıştır:
Sınırlayıcı = InputBox("Bir hücredeki değerleri ayıran sınırlayıcıyı belirtin", "Sınırlayıcı", ", ")
Kodunuzda, önceden tanımlanmış sınırlayıcı olarak başka karakter(ler) kullanmakta özgürsünüz.
Renk
Varsayılan olarak HighlightDupeWordsInCell fonksiyonu kopyaları kırmızı yazı tipi renginde gölgelendirir. Renk bu satırda tanımlanır:
Cell.Characters(positionInText, Len(word)).Font.Color = vbRed
Burada vbRed bir tür VBA renk sabitidir. Yinelenenleri farklı bir renkte görüntülemek için vbRed yerine vbGreen, vbYellow gibi başka bir sabit kullanabilirsiniz, vbBlue, vb. T Desteklenen renk sabitlerinin listesine buradan ulaşabilirsiniz.
Excel hücrelerinde yinelenen sözcükler bu şekilde vurgulanır. Okuduğunuz için teşekkür ediyor ve gelecek hafta blogumuzda görüşmeyi umuyorum!
Mevcut indirmeler
Bir hücredeki kopyaları vurgulamak için kod örnekleri (.xlsm dosyası)
Ultimate Suite 14 günlük tam işlevli sürüm (.exe dosyası)