Si të nënvizoni tekstin / fjalët e kopjuara në qelizën Excel

  • Shperndaje Kete
Michael Brown

Udhëzuesi tregon se si të nënvizoni fjalët e kopjuara ose vargjet e tekstit brenda një qelize duke përdorur VBA.

Formatimi i kushtëzuar i Excel bën të mundur nënvizimin e dublikatave në çdo mënyrë të mundshme që mund të mendoni: me ose pa dukuritë e para, në një kolonë të vetme ose kolona të shumta, qeliza të njëpasnjëshme dublikatë dhe rreshta të tëra bazuar në vlera identike në një kolonë kyçe. Por, si zakonisht, ka një "por". Rregullat e formatimit të kushtëzuar funksionojnë në një nivel qelize ndërsa mund të dëshironi të nënvizoni tekstin e kopjuar dhe jo qelizat e tëra. Kjo mund të bëhet vetëm me makro. Edhe nëse nuk keni ndonjë përvojë me VBA, ju lutemi mos nxitoni ta mbyllni këtë faqe. Këtu do të gjeni shembuj të kodit të gatshëm për përdorim dhe udhëzime të hollësishme se si t'i përdorni ato në fletët tuaja të punës.

    Theksoni fjalët e kopjuara në një qelizë që injoron rastet e tekstit

    Ky shembull tregon se si të hijezohen fjalët e dyfishta ose vargjet e tekstit brenda një qelize me ngjyrë të kuqe të shkronjave, siç tregohet në imazhin më poshtë. Ju lutemi vini re se shkronjat e vogla dhe të mëdha trajtohen si të njëjtat karaktere. Për shembull, portokalli , Portokalli dhe Portokalli konsiderohen të jenë e njëjta fjalë.

    kodi i makros është si më poshtë:

    Publik Sub HighlightDupesCaseInsensitive() Qelizë e zbehtë si Kufizues i zbehtë i diapazonit si ndarës i vargut = InputBox( "Futni kufizuesin që ndan vlerat në një qelizë", "Delimiter", ", " ) Për çdo qelizë nëApplication.Selection Call HighlightDupeWordsInCell(Cel, Delimiter, False ) Fundi tjetër Nën Sub HighlightDupeWordsInCell(Qeliza si varg, Kufizues opsional si varg = " " , Opsionale Kase Sensitive si Boolean = E vërtetë) Teksti i zbehtë si varg fjalë të zbehta si fjalë të zbehta si varg Vargu Dim wordIndex, matchCount, positionInText As Integer If CaseSensitive Pastaj fjalët = Split(Cell.Value, Delimiter) Fjalë të tjera = Split(LCase(Cell.Value), Delimiter) Fund If For wordIndex = LBound (fjalë) Në UBound (fjalë) - 1 fjalë = fjalë(indeksi i fjalëve) përputhjeNumërimi = 0 Për NextWordIndex = wordIndex + 1 Në UBound (fjalë) Nëse fjala = fjalë (nextWordIndex) Pastaj matchCount = matchCount + 1 Fund If Next nextWordIndex If matchCount > 0 Pastaj tekst = "" Për Indeksin = LBound (fjalë) Në UBound (fjalë) tekst = tekst & fjalë(Indeksi) Nëse (fjalë(Indeksi) = fjalë) Pastaj Cell.Karakteret(Len(tekst) - Len(fjalë) + 1, Len(fjalë)).Font.Ngjyra = vbE Kuqe Fundi Nëse teksti = teksti & Delimiter Next End If Next WordIndex End Sub

    Theksoni tekstin e kopjuar në një qelizë të ndjeshme ndaj shkronjave të vogla

    Në shumicën e situatave, ne priremi të injorojmë shkronjat e mëdha kur punojmë me hyrjet e tekstit në Excel. Në rrethana të caktuara, megjithatë, rasti i tekstit ka rëndësi. Për shembull, nëse keni të bëni me ID, fjalëkalime ose regjistrime të tjera të atij lloji, vargjet si 1-AA , 1-aa dhe 1-Aa nuk janë dublikatë dhe nuk duhet të theksohen:

    Në këtë rast,përdorni versionin e mëposhtëm të kodit:

    Publik Sub HighlightDupesCaseSensitive() Dim Cell As Range Dim Delimiter As String Delimiter = InputBox( "Futni ndarësin që ndan vlerat në një qelizë", "Delimiter", ", " ) Për secilin Cell në Application.Selection Call HighlightDupeWordsInCell(Cel, Delimiter, True ) Fundi tjetër Nën nën HighlightDupeWordsInCell(Qeliza si varg, Kufizues opsional si varg = " " , Opsionale e ndjeshme ndaj rastit si Boolean = e vërtetë ) Teksti i zbehtë si varg i zbehtë i fjalëve. fjala si varg Dim wordIndex, matchCount, positionInText As Integer If CaseSensitive Pastaj fjalët = Split(Cell.Value, Delimiter) Fjalët e tjera = Split(LCase(Cell.Value), Delimiter) Fund If For wordIndex = LBound (fjalë) Në UBound ( fjalë) - 1 fjalë = fjalë(indeksi i fjalës) përputhjeNumërimi = 0 Për NextWordIndex = wordIndex + 1 Në UBound (fjalë) Nëse fjala = fjalë(nextWordIndex) Pastaj matchCount = matchCount + 1 Fund If Next nextWordIndex If matchCount > 0 Pastaj tekst = "" Për Indeksin = LBound (fjalë) Në UBound (fjalë) tekst = tekst & fjalë(Indeksi) Nëse (fjalë(Indeksi) = fjalë) Pastaj Cell.Karakteret(Len(tekst) - Len(fjalë) + 1, Len(fjalë)).Font.Ngjyra = vbE kuq Fundi Nëse teksti = teksti & Delimiter Next End If Next WordIndex End Sub

    Si të përdorni makrot për të nënvizuar fjalët dublikate në Excel

    Nëse jeni fillestar në përdorimin e VBA, udhëzimet hap pas hapi më poshtë do t'ju udhëzojnë lehtësisht . Përdoruesit me përvojë mundthjesht zgjidhni lidhjen e shkarkimit dhe kaloni pjesën tjetër :)

    Shtoni kodin në librin tuaj të punës

    Ju filloni me futjen e kodit të makros në librin tuaj të punës Excel. Ja se si:

    1. Hapni librin e punës ku dëshironi të nënvizoni mashtrimet.
    2. Shtypni Alt + F11 për të hapur Redaktuesin Visual Basic.
    3. Në panelin e majtë, kliko me të djathtën This Workbook dhe zgjidhni Insert > Module nga menyja e kontekstit.
    4. Ngjitni kodin në dritaren e Kodit.
    5. Për ta mbajtur makron për përdorim në të ardhmen, sigurohuni që ta ruani librin tuaj të punës si një skedar .xlsm të aktivizuar me makro.

    Përndryshe, mund të shkarkoni modelin e librit tonë të punës dhe të ekzekutoni makro nga atje. Shembulli i librit të punës përmban makrot e mëposhtme:

    • HighlightDupesCaseInsensitive - nuancon dublikatat brenda një qelize duke injoruar shkronjat.
    • HighlightDupesCaseSensitive - pikat kryesore mashtron në një qelizë duke marrë parasysh rastin e shkronjës.

    Për më shumë informacion, ju lutemi shikoni Si të futni kodin VBA në Excel.

    Ekzekutoni makro

    Me kodin shtuar në librin tuaj të punës ose skedarin tonë mostër të shkarkuar dhe hapur, ekzekutoni makro në këtë mënyrë:

    1. Në fletën tuaj të punës, zgjidhni qelizat ku dëshironi të nënvizoni tekstin e kopjuar. Kjo mund të jetë një interval ose shumë vargje jo ngjitur.
    2. Shtypni Alt + F8 .
    3. Zgjidhni makron që ju intereson dhe klikoni Run .

    4. Makro do t'ju kërkojë të specifikoni ndarësinqë ndan vlerat në qelizat e zgjedhura. Kufizuesi i paravendosur (një presje dhe një hapësirë ​​në rastin tonë) do të shfaqet automatikisht në kutinë e hyrjes. Në varësi të nevojave tuaja, mund të lini ndarësin e paracaktuar ose të shkruani një tjetër dhe më pas të klikoni OK.

    Një moment më vonë, të gjitha vargjet dublikaten në të zgjedhurën qelizat do të mbulohen me ngjyrë të kuqe (ose çfarëdo ngjyre fonti të vendosur në kodin tuaj).

    Këshillë. Për të hequr shpejt dublikatat brenda një qelize, mund të përdorni Remove Duplicate Substrings, një nga shumë mjetet e kursimit të kohës të përfshira në Ultimate Suite.

    Si ta rregulloni kodin për nevojat tuaja

    Me këto shënime përdorimi dhe njohuritë shumë themelore të VBA (ose thjesht duke ndjekur nga afër udhëzimet e mëposhtme), ju mund t'i modifikoni lehtësisht kodet në përputhje saktësisht me nevojat tuaja.

    Vendosni në të njëjtin modul

    Siç mund ta vini re, të dy makrot ( HighlightDupesCaseSensitive dhe HighlightDupesCaseInsensitive ) thërrasin funksionin HighlightDupeWordsInCell . Dallimi midis dy makrove të mësipërme është vetëm në parametrin e tretë (CaseSensitive) që i është transmetuar funksionit të përmendur.

    Për kërkimin me ndjeshmëri të madhe, është vendosur në TRUE:

    Call HighlightDupeWordsInCell(Cell, Delimiter, True)

    Për kërkimin e pandjeshëm ndaj shkronjave, është vendosur në FALSE:

    Call HighlightDupeWordsInCell(Cell, Delimiter, False)

    Që makrot të funksionojnë, kodi i funksionit HighlightDupeWordsInCell duhet të vendoset në i njëjti modul simakro.

    Delimiter

    Kur ekzekutohet, makroja do t'ju kërkojë të specifikoni ndarësin që ndan fjalët/vargjet në qelizat e zgjedhura. Kufizuesi i parazgjedhur është një presje dhe një hapësirë ​​(", ") dhe është paracaktuar në InputBox:

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

    Në kodin tuaj, ju jeni të lirë të përdorni çdo karakter(a) tjetër si ndarës i paracaktuar.

    Ngjyra

    Si parazgjedhje, funksioni HighlightDupeWordsInCell dublikon ngjyrën e fontit të kuq. Ngjyra përcaktohet në këtë rresht:

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

    Këtu, vbRed është një lloj konstante ngjyrash VBA. Për të shfaqur dupes në një ngjyrë të ndryshme, ju mund të zëvendësoni vbRed me një konstante tjetër si vbGreen, vbYellow, vbBlue, etj. T lista e konstantave të ngjyrave të mbështetura mund të gjendet këtu.

    Kjo është si të nënvizoni fjalët e kopjuara në qelizat e Excel. Ju falënderoj që lexoni dhe shpresoj t'ju shohim në blogun tonë javën e ardhshme!

    Shkarkime të disponueshme

    Shembuj kodesh për të theksuar dublikatat në një qelizë (skedari .xlsm)

    Ultimate Suite version plotësisht funksional 14-ditor (skedar .exe)

    Michael Brown është një entuziast i përkushtuar i teknologjisë me një pasion për thjeshtimin e proceseve komplekse duke përdorur mjete softuerike. Me më shumë se një dekadë përvojë në industrinë e teknologjisë, ai ka përmirësuar aftësitë e tij në Microsoft Excel dhe Outlook, si dhe Google Sheets dhe Docs. Blogu i Michael është i përkushtuar ndaj ndarjes së njohurive dhe ekspertizës së tij me të tjerët, duke ofruar këshilla dhe mësime të thjeshta për t'u ndjekur për të përmirësuar produktivitetin dhe efikasitetin. Pavarësisht nëse jeni një profesionist me përvojë apo fillestar, blogu i Michael ofron njohuri të vlefshme dhe këshilla praktike për të përfituar sa më shumë nga këto mjete softuerike thelbësore.