Kako označiti podvojeno besedilo / besede v celici Excel

  • Deliti To
Michael Brown

V učbeniku je prikazano, kako s programom VBA označite podvojene besede ali besedilne nize v celici.

Excelovo pogojno oblikovanje omogoča poudarjanje podvojitev na vse možne načine, ki si jih lahko zamislite: s 1. pojavitvijo ali brez nje, v enem stolpcu ali več stolpcih, zaporedne podvojene celice in celotne vrstice na podlagi enakih vrednosti v ključnem stolpcu. Kot običajno pa obstaja "ampak". Pravila pogojnega oblikovanja delujejo na ravni celic, medtem ko boste morda želeli poudariti podvojenebesedilo in ne celotne celice. To lahko storite le z makri. Tudi če nimate izkušenj z VBA, ne hitite zapreti te strani. Tu boste našli primere kode, pripravljene za uporabo, in podrobna navodila za njihovo uporabo v delovnih listih.

    Označite podvojene besede v celici, pri čemer ne upoštevate velikosti besedila

    Ta primer prikazuje, kako podvojene besede ali besedilne nize v celici obarvati z rdečo barvo pisave, kot je prikazano na spodnji sliki. Upoštevajte, da so male in velike črke obravnavane kot enaki znaki. Na primer, oranžna , ORANŽNA in . Oranžna se štejejo za isto besedo.

    Koda makra je naslednja:

    Public Sub HighlightDupesCaseInsensitive() Dim Cell As Range Dim Delimiter As String Delimiter = InputBox( "Vnesite ločilo, ki ločuje vrednosti v celici" , "Delimiter" , ", " ) 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 Sub

    Označite podvojeno besedilo v celici, ki je občutljivo na velikost črk

    V večini primerov pri delu z besedilnimi zapisi v Excelu ne upoštevamo velikosti črk. V določenih okoliščinah pa je velikost besedila pomembna. Če imate na primer opravka z ID-ji, gesli ali drugimi tovrstnimi zapisi, se nizi, kot so 1-AA , 1-aa in . 1-Aa se ne podvajajo in jih ni treba poudarjati:

    V tem primeru uporabite naslednjo različico kode:

    Public Sub HighlightDupesCaseSensitive() Dim Cell As Range Dim Delimiter As String Delimiter = InputBox( "Vnesite ločilo, ki ločuje vrednosti v celici" , "Delimiter" , ", " ) For Each Cell In Application.Selection Call HighlightDupeWordsInCell(Cell, Delimiter, True ) Next End 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 Sub

    Kako uporabljati makre za označevanje podvojenih besed v Excelu

    Če ste začetnik pri uporabi VBA, vas bodo spodnja navodila po korakih udobno vodila skozi. Izkušeni uporabniki lahko preprosto izberejo povezavo za prenos in preskočijo vse ostalo :)

    Dodajte kodo v delovni zvezek

    Najprej vstavite kodo makra v delovni zvezek programa Excel:

    1. Odprite delovni zvezek, v katerem želite označiti podvojitve.
    2. Pritisnite Alt + F11, da odprete urejevalnik Visual Basic.
    3. V levem podoknu z desno tipko miške kliknite Ta delovna knjiga in izberite Vstavite > Modul iz kontekstnega menija.
    4. Kodo prilepite v okno Koda.
    5. Če želite ohraniti makro za nadaljnjo uporabo, delovno knjižico shranite kot datoteko .xlsm z omogočenim makrom.

    Lahko pa prenesete naš vzorčni delovni zvezek in makro zaženete iz njega. Vzorčni delovni zvezek vsebuje naslednje makroje:

    • HighlightDupesCaseInsensitive - odstira podvojitve v celici, pri čemer ne upošteva velikosti črk.
    • HighlightDupesCaseSensitive - izpostavi dvojnike v celici, pri čemer upošteva velikost črk.

    Za več informacij glejte Kako vstaviti kodo VBA v Excel.

    Zaženi makro

    Ko je koda dodana v vaš delovni zvezek ali ko je prenesena in odprta naša vzorčna datoteka, zaženite makro na ta način:

    1. V delovnem listu izberite celice, v katerih želite označiti podvojeno besedilo. To je lahko en razpon ali več nesorodnih razponov.
    2. Pritisnite Alt + F8 .
    3. Izberite makro, ki vas zanima, in kliknite Spustite .

    4. Makro vas bo prosil, da določite ločilo, ki ločuje vrednosti v izbranih celicah. Prednastavljeno ločilo (v našem primeru vejica in presledek) se bo samodejno prikazalo v vnosnem polju. Glede na svoje potrebe lahko pustite privzeto ločilo ali vnesete drugo, nato pa kliknite V redu.

    Čez trenutek bodo vsi podvojeni nizi v izbranih celicah osenčeni z rdečo barvo (ali katero koli barvo pisave, ki je nastavljena v vaši kodi).

    Nasvet. Če želite hitro odstranite podvojitve v celici, lahko uporabite program Odstrani podvojene podrejene nize, ki je eno od številnih orodij za prihranek časa, vključenih v naš paket Ultimate Suite.

    Kako prilagoditi kodo svojim potrebam

    S temi navodili za uporabo in zelo osnovnim znanjem VBA (ali samo z natančnim upoštevanjem spodnjih navodil) lahko kode preprosto spremenite v skladu s svojimi potrebami.

    Postavite v isti modul

    Kot ste morda opazili, sta oba makra ( HighlightDupesCaseSensitive in . HighlightDupesCaseInsensitive ) pokličite HighlightDupeWordsInCell Razlika med zgornjima dvema makroma je le v tretjem parametru (CaseSensitive), ki se posreduje omenjeni funkciji.

    Za iskanje, ki upošteva velikost črk, je nastavljena na TRUE:

    Pokličite HighlightDupeWordsInCell(Cell, Delimiter, True)

    Za iskanje brez upoštevanja velikosti črk je nastavljena na FALSE:

    Pokličite HighlightDupeWordsInCell(Cell, Delimiter, False)

    Da bi makri delovali, mora biti koda HighlightDupeWordsInCell mora biti nameščena v istem modulu kot makri.

    Razmejitev

    Ob zagonu bo makro zahteval, da določite ločilo, ki ločuje besede/revije v izbranih celicah. Privzeto ločilo je vejica in presledek (", ") in je prednastavljeno v vnosnem polju:

    Delimiter = InputBox("Določite ločilo, ki ločuje vrednosti v celici", "Delimiter", ", ")

    V kodi lahko kot vnaprej določen ločilnik uporabite kateri koli drug znak ali znake.

    Barva

    Privzeto je HighlightDupeWordsInCell funkcija obarva podvojitve z rdečo barvo pisave. Barva je določena v tej vrstici:

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

    V tem primeru je vbRed nekakšna barvna konstanta VBA. Če želite dvojnike prikazati v drugi barvi, lahko vbRed nadomestite z drugo konstanto, na primer vbGreen ali vbYellow, vbBlue itd. T seznam podprtih barvnih konstant najdete tukaj.

    To je način za označevanje podvojenih besed v celicah programa Excel. Zahvaljujem se vam za branje in upam, da se naslednji teden vidimo na našem blogu!

    Razpoložljivi prenosi

    Primeri kode za označevanje podvojitev v celici (.xlsm datoteka)

    Ultimate Suite 14-dnevna popolnoma funkcionalna različica (.exe datoteka)

    Michael Brown je predan tehnološki navdušenec s strastjo do poenostavljanja kompleksnih procesov z uporabo programskih orodij. Z več kot desetletnimi izkušnjami v tehnološki industriji je svoje veščine izpopolnil v Microsoft Excelu in Outlooku ter Google Preglednicah in Dokumentih. Michaelov blog je namenjen deljenju svojega znanja in strokovnega znanja z drugimi ter ponuja preproste nasvete in vadnice za izboljšanje produktivnosti in učinkovitosti. Ne glede na to, ali ste izkušen strokovnjak ali začetnik, Michaelov blog ponuja dragocene vpoglede in praktične nasvete, kako kar najbolje izkoristiti ta osnovna programska orodja.