Hoe kinne jo dûbele tekst / wurden markearje yn Excel-sel

  • Diel Dit
Michael Brown

De tutorial lit sjen hoe't jo dûbele wurden of teksttekens binnen in sel markearje kinne mei VBA.

Excel Conditional Formatting makket it mooglik om duplikaten op alle mooglike manieren te markearjen wêr't jo oan kinne betinke: mei of sûnder 1e foarfallen, yn ien kolom of meardere kolommen, opienfolgjende dûbele sellen, en hiele rigen basearre op identike wearden yn in kaai kolom. Mar, lykas gewoanlik, is der in "mar". Regels foar betingsten opmaak wurkje op selnivo, wylst jo dûbele tekst miskien wolle markearje ynstee fan folsleine sellen. Dit kin allinich dien wurde mei makro's. Sels as jo gjin ûnderfining hawwe mei VBA, haast asjebleaft net om dizze side te sluten. Hjir fine jo klearebare koadefoarbylden en de detaillearre ynstruksjes oer hoe't jo se kinne brûke yn jo wurkblêden.

    Markearje dûbele wurden yn in sel mei negearjen fan tekstfallen

    Dit foarbyld lit sjen hoe't jo dûbele wurden of tekststrings binnen in sel yn in reade lettertypekleur skaadje kinne lykas werjûn yn 'e ôfbylding hjirûnder. Tink derom dat lytse en haadletters wurde behannele as deselde karakters. Bygelyks, oranje , oranje en oranje wurde beskôge as itselde wurd.

    De macro's code is as follows:

    Public Sub HighlightDupesCaseInsensitive() Dim Cell As Range Dim Delimiter As String Delimiter = InputBox( "Fier de delimiter yn dy't wearden skiedt yn in sel" , "Delimiter" , ", " ) Foar elke sel ynApplication.Selection Call HighlightDupeWordsInCell(Cell, Delimiter, False ) Next End Sub Sub HighlightDupeWordsInCell(Cell As Range, Optional Delimiter As String = " " , Optional CaseSensitive As Boolean = 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 (wurden) To UBound (wurden) - 1 wurd = wurden (wordIndex) matchCount = 0 Foar nextWordIndex = wordIndex + 1 To UBound (wurden) As wurd = wurden (nextWordIndex) Dan matchCount = matchCount + 1 Ein As Folgjende nextWordIndex As matchCount & GT; 0 Dan tekst = "" Foar Index = LBound (wurden) To UBound (wurden) tekst = tekst & amp; wurden (yndeks) As (wurden (yndeks) = wurd) Dan Cell.Characters (Len (tekst) - Len (wurd) + 1, Len (wurd)).Font.Color = vbRed End As tekst = tekst & amp; Delimiter Folgjende Ein As Folgjende wurdIndex End Sub

    Markearje dûbele tekst yn in sel haadlettergefoelich

    Yn 'e measte situaasjes negearje wy de letterkast as wy wurkje mei tekstyngongen yn Excel. Under beskate omstannichheden docht de tekstsaak lykwols wol ta. As jo ​​bygelyks te krijen hawwe mei ID's, wachtwurden, of oare records fan dat soarte, binne de snaren lykas 1-AA , 1-aa en 1-Aa binne gjin duplikaten en moatte net markearre wurde:

    Yn dit gefal,brûk de folgjende ferzje fan de koade:

    Public Sub HighlightDupesCaseSensitive() Dim Cell As Range Dim Delimiter As String Delimiter = InputBox( "Fier de delimiter yn dy't wearden skiedt yn in sel" , "Delimiter" , ", " ) Foar elk Cell In Application.Selection Call HighlightDupeWordsInCell(Cell, Delimiter, True ) Next End Sub Sub HighlightDupeWordsInCell(Cell As Range, Optional Delimiter As String = " " , Optional CaseSensitive As Boolean = True ) Dim text As String Dim words() As String Dim wurd As String Dim wordIndex, matchCount, positionInText As Integer If CaseSensitive Then wurden = Split(Cell.Value, Delimiter) Oare wurden = Split(LCase(Cell.Value), Delimiter) End If For wordIndex = LBound (wurden) To UBound ( wurden) - 1 wurd = wurden (wordIndex) matchCount = 0 Foar nextWordIndex = wordIndex + 1 To UBound (wurden) As wurd = wurden (nextWordIndex) Dan matchCount = matchCount + 1 Ein As Folgjende nextWordIndex As matchCount & GT; 0 Dan tekst = "" Foar Index = LBound (wurden) To UBound (wurden) tekst = tekst & amp; wurden (yndeks) As (wurden (yndeks) = wurd) Dan Cell.Characters (Len (tekst) - Len (wurd) + 1, Len (wurd)).Font.Color = vbRed End As tekst = tekst & amp; Delimiter Next End If Next wordIndex End Sub

    Hoe kinne jo de makro's brûke om duplikaatwurden yn Excel te markearjen

    As jo ​​in begjinner binne yn it brûken fan VBA, sille de hjirûnder stap-foar-stap ynstruksjes jo noflik trochrinne . Erfarne brûkers kinnekies gewoan de downloadkeppeling en sla de rest oer :)

    Foegje de koade ta oan jo wurkboek

    Jo begjinne mei it ynfoegjen fan de koade fan 'e makro yn jo Excel-wurkboek. Hjir is hoe:

    1. Iepenje it wurkboek wêr't jo dupes markearje wolle.
    2. Druk op Alt + F11 om de Visual Basic Editor te iepenjen.
    3. Op it linker paniel, Rjochtsklik op ThisWorkbook en selektearje Ynfoegje > Module út it kontekstmenu.
    4. Plak de koade yn it Koadefinster.
    5. Om de makro te hâlden foar takomstich gebrûk, wês wis dat jo jo wurkboek opslaan as in makro-ynskeakele .xlsm-bestân.

    Alternatyf kinne jo ús foarbyldwurkboek downloade en de makro dêrwei útfiere. It foarbyldwurkboek befettet de folgjende makro's:

    • HighlightDupesCaseInsensitive - skadet duplikaten binnen in sel mei it negearjen fan de letter-case.
    • HighlightDupesCaseSensitive - highlights dupes yn in sel sjoen it letterfalle.

    Sjoch foar mear ynformaasje Hoe VBA-koade ynfoegje yn Excel.

    De makro útfiere

    Mei de koade tafoege oan jo eigen wurkboek of ús foarbyldbestân ynladen en iepen, fier de makro op dizze manier:

    1. Selektearje yn jo wurkblêd de sellen wêr't jo dûbele tekst wolle markearje. Dit kin ien berik wêze of meardere net-oangrinzjende berikken.
    2. Druk op Alt + F8 .
    3. Selektearje de makro fan belang en klik op Utfiere .

    4. De makro sil jo freegje om it skiedingsteken op te jaandat skiedt de wearden yn de selektearre sellen. De foarôf ynstelde skiedingsteken (in komma en in spaasje yn ús gefal) sil automatysk ferskine yn it ynfierfak. Ofhinklik fan jo behoeften kinne jo it standert skiedingsteken ferlitte of in oare typearje, en klikje dan op OK.

    Ein momint letter, alle dûbele stringen yn 'e selektearre sellen wurde skaad yn reade kleur (of hokker lettertype kleur is ynsteld yn jo koade).

    Tip. Om fluch duplikaten te ferwiderjen binnen in sel, kinne jo Duplicate Substrings fuortsmite, ien fan in protte tiidbesparjende ark opnommen yn ús Ultimate Suite.

    Hoe kinne jo de koade oanpasse foar jo behoeften

    Mei dizze gebrûksnotysjes en de heule basiskennis fan VBA (of gewoan de folgjende ynstruksjes nau folgje), kinne jo de koades maklik oanpasse yn krekte oerienstimming mei jo behoeften.

    Plaze op deselde module

    Sa't jo miskien merke kinne, neame beide makro's ( HighlightDupesCaseSensitive en HighlightDupesCaseInsensitive ) de HighlightDupeWordsInCell funksje. It ferskil tusken de twa makro's hjirboppe is allinnich yn de 3e parameter (CaseSensitive) trochjûn oan de neamde funksje.

    Foar haadlettergefoelige sykjen is it ynsteld op TRUE:

    Call HighlightDupeWordsInCell(Cell, Delimiter, True)

    Foar haadletter-ûngefoelige sykjen is it ynsteld op FALSE:

    Call HighlightDupeWordsInCell(Cell, Delimiter, False)

    Om de makro's te wurkjen, moat de koade fan de funksje HighlightDupeWordsInCell pleatst wurde op deselde module as demakro's.

    Delimiter

    As it útfiert, sil de makro jo freegje om it skiedingsteken oan te jaan dat wurden/strings skiedt yn de selektearre sellen. It standert skiedingsteken is in komma en in spaasje (", ") en it is foarôf ynsteld yn it ynfierfak:

    Delimiter = InputBox("Specify the delimiter that separates values in a cell", "Delimiter", ", ")

    Yn jo koade binne jo frij om alle oare tekens te brûken. as it foarôf definieare skiedingsteken.

    Kleur

    Standert is de HighlightDupeWordsInCell funksje duplikaat yn reade lettertypekleur. De kleur is definiearre yn dizze rigel:

    Cell.Characters(positionInText, Len(word)).Font.Color = vbRed

    Hjir is vbRed in soarte fan VBA-kleurkonstante. Om dupes yn in oare kleur wer te jaan, kinne jo vbRed ferfange troch in oare konstante lykas vbGreen, vbYellow, vbBlue, ensfh. T hy list mei stipe kleurkonstanten is hjir te finen.

    Dat is hoe't jo dûbele wurden yn Excel-sellen markearje. Ik tankje jo foar it lêzen en hoopje jo nije wike op ús blog te sjen!

    Beskikbere downloads

    Koadefoarbylden om duplikaten te markearjen yn in sel (.xlsm-bestân)

    Ultimate Suite 14-dagen folslein funksjonele ferzje (.exe-bestân)

    Michael Brown is in tawijd technology-entûsjast mei in passy foar it ferienfâldigjen fan komplekse prosessen mei software-ark. Mei mear as in desennium ûnderfining yn 'e tech-yndustry hat hy syn feardigens yn Microsoft Excel en Outlook, lykas Google Blêden en Docs, oanskerpe. Michael's blog is wijd oan it dielen fan syn kennis en ekspertize mei oaren, en biedt maklik te folgjen tips en tutorials foar it ferbetterjen fan produktiviteit en effisjinsje. Oft jo in betûfte profesjonele of in begjinner binne, Michael's blog biedt weardefolle ynsjoch en praktysk advys om it measte út dizze essensjele software-ark te heljen.