Як вылучыць паўтаральны тэкст / словы ў вочку Excel

  • Падзяліцца Гэтым
Michael Brown

Падручнік паказвае, як выдзяляць дублікаты слоў ці тэкставых радкоў у ячэйцы з дапамогай VBA.

Умоўнае фарматаванне Excel дазваляе вылучаць дублікаты любымі магчымымі спосабамі: з або без першага ўваходжання, у адным слупку або некалькіх слупках, паслядоўныя дублікаты вочак і цэлыя радкі на аснове аднолькавых значэнняў у ключавым слупку. Але, як звычайна, ёсць сваё «але». Правілы ўмоўнага фарматавання працуюць на ўзроўні ячэйкі, у той час як вы можаце вылучыць дублікат тэксту, а не цэлыя ячэйкі. Гэта можна зрабіць толькі з дапамогай макрасаў. Нават калі ў вас няма досведу працы з VBA, не спяшайцеся закрываць гэтую старонку. Тут вы знойдзеце гатовыя да выкарыстання прыклады кода і падрабязныя інструкцыі па іх выкарыстанні ў вашых працоўных аркушах.

    Вылучайце паўтаральныя словы ў ячэйцы, ігнаруючы рэгістр тэксту

    Гэты прыклад паказвае, як зацяняць дублікаты слоў або тэкставых радкоў у ячэйцы чырвоным колерам шрыфта, як паказана на малюнку ніжэй. Звярніце ўвагу, што малыя і вялікія літары разглядаюцца як аднолькавыя сімвалы. Напрыклад, апельсін , АМАРАНС і Апельсін лічацца адным і тым жа словам.

    код макраса выглядае наступным чынам:

    Public Sub HighlightDupesCaseInsensitive() Dim Cell As Range Dim Delimiter As String Delimiter = InputBox( "Увядзіце падзельнік, які падзяляе значэнні ў ячэйцы" , "Delimiter" , ", " ) Для кожнай ячэйкі ўВыклік Application.Selection 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 Радок 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 (словы) To UBound (словы) - 1 слова = words(wordIndex) matchCount = 0 For nextWordIndex = wordIndex + 1 To UBound (словы) If word = words(nextWordIndex) Then matchCount = matchCount + 1 End If Next nextWordIndex If matchCount > 0 Затым тэкст = "" Для Index = LBound (словы) To UBound (словы) 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 & Раздзяляльнік Next End If Next wordIndex End Sub

    Вылучыць дублікат тэксту ў ячэйцы з улікам рэгістра

    У большасці сітуацый мы схільныя ігнараваць рэгістр літар пры працы з тэкставымі запісамі ў Excel. Аднак пры пэўных абставінах рэгістр тэксту мае значэнне. Напрыклад, калі вы маеце справу з ідэнтыфікатарамі, паролямі або іншымі запісамі такога роду, такія радкі, як 1-AA , 1-aa і 1-Aa не з'яўляюцца дублікатамі і не павінны вылучацца:

    У гэтым выпадку,выкарыстоўвайце наступную версію кода:

    Public Sub HighlightDupesCaseSensitive() Dim Cell As Range Dim Delimiter As String Delimiter = InputBox( "Увядзіце падзельнік, які падзяляе значэнні ў ячэйцы" , "Delimiter" , ", " ) Для кожнага 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 слова 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 (словы) To UBound ( словы) - 1 слова = словы(wordIndex) matchCount = 0 For nextWordIndex = wordIndex + 1 To UBound (словы) If word = words(nextWordIndex) Then matchCount = matchCount + 1 End If Next nextWordIndex If matchCount > 0 Затым тэкст = "" Для Index = LBound (словы) To UBound (словы) 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 & Раздзяляльнік Next End If Next wordIndex End Sub

    Як выкарыстоўваць макрасы для вылучэння дублікатаў слоў у Excel

    Калі вы пачатковец у выкарыстанні VBA, прыведзеныя ніжэй пакрокавыя інструкцыі дапамогуць вам у гэтым. . Дасведчаныя карыстальнікі могуцьпроста выберыце спасылку для загрузкі і прапусціце астатняе :)

    Дадайце код у вашу кнігу

    Вы пачынаеце з устаўкі кода макраса ў вашу кнігу Excel. Вось як:

    1. Адкрыйце працоўную кнігу, дзе вы хочаце вылучыць падманы.
    2. Націсніце Alt + F11, каб адкрыць рэдактар ​​Visual Basic.
    3. На левай панэлі пстрыкніце правай кнопкай мышы ThisWorkbook і абярыце Insert > Module з кантэкстнага меню.
    4. Устаўце код у акно Code.
    5. Каб захаваць макрас для выкарыстання ў будучыні, не забудзьцеся захаваць вашу працоўную кнігу як файл .xlsm з падтрымкай макрасаў.

    Або вы можаце загрузіць наш узор працоўнай кнігі і запусціць макрас адтуль. Прыклад кнігі змяшчае наступныя макрасы:

    • HighlightDupesCaseInsensitive - зацяняе дублікаты ў ячэйцы, ігнаруючы рэгістр літар.
    • HighlightDupesCaseSensitive - вылучае. падманвае ў ячэйцы з улікам рэгістра літар.

    Для атрымання дадатковай інфармацыі глядзіце, як уставіць код VBA ў Excel.

    Запусціце макрас

    З кодам дададзены ў вашу ўласную працоўную кнігу або наш узор файла, спампаваны і адкрыты, запусціце макрас такім чынам:

    1. На вашым працоўным аркушы выберыце ячэйкі, у якіх вы хочаце вылучыць паўтаральны тэкст. Гэта можа быць адзін дыяпазон або некалькі несумежных дыяпазонаў.
    2. Націсніце Alt + F8 .
    3. Абярыце цікавы макрас і націсніце Выканаць .

    4. Макрас папросіць вас указаць падзельнікякі падзяляе значэнні ў выбраных вочках. Зададзены раздзяляльнік (у нашым выпадку коска і прабел) з'явіцца ў полі ўводу аўтаматычна. У залежнасці ад вашых патрэбаў, вы можаце пакінуць падзельнік па змаўчанні або ўвесці іншы, а затым націснуць ОК.

    Праз імгненне ўсе дублікаты радкоў у выбраным ячэйкі будуць зафарбаваны чырвоным колерам (або любым колерам шрыфта, усталяваным у вашым кодзе).

    Савет. Каб хутка выдаліць дублікаты ў ячэйцы, вы можаце выкарыстаць Remove Duplicate Substrings, адзін з многіх інструментаў эканоміі часу, уключаных у наш Ultimate Suite.

    Як наладзіць код для вашых патрэб

    Выкарыстоўваючы гэтыя заўвагі па выкарыстанні і вельмі базавыя веды VBA (або проста ўважліва прытрымліваючыся прыведзеных ніжэй інструкцый), вы можаце лёгка змяніць коды ў дакладнай адпаведнасці з вашымі патрэбамі.

    Размясціць у тым жа модулі

    Як вы можаце заўважыць, абодва макрасы ( HighlightDupesCaseSensitive і HighlightDupesCaseInsensitive ) выклікаюць функцыю HighlightDupeWordsInCell . Розніца паміж двума макрасамі, прыведзенымі вышэй, заключаецца толькі ў 3-м параметры (CaseSensitive), перададзеным у згаданую функцыю.

    Для пошуку з улікам рэгістра, ён усталяваны ў TRUE:

    Call HighlightDupeWordsInCell(Cell, Delimiter, True)

    Для пошуку без уліку рэгістра ўстаноўлена FALSE:

    Call HighlightDupeWordsInCell(Cell, Delimiter, False)

    Каб макрасы працавалі, код функцыі HighlightDupeWordsInCell павінен быць размешчаны на той жа модуль, што імакрасы.

    Раздзяляльнік

    Пры запуску макрас папросіць вас указаць раздзяляльнік, які падзяляе словы/радкі ў выбраных ячэйках. Раздзяляльнікам па змаўчанні з'яўляецца коска і прабел (", "), і ён прадусталяваны ў полі ўводу:

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

    У вашым кодзе вы можаце выкарыстоўваць любыя іншыя сімвалы у якасці загадзя вызначанага раздзяляльніка.

    Колер

    Па змаўчанні функцыя HighlightDupeWordsInCell зацяняе дублікаты чырвоным колерам шрыфта. Колер вызначаецца ў гэтым радку:

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

    Тут vbRed з'яўляецца свайго роду канстантай колеру VBA. Каб адлюстраваць падманы ў іншым колеры, вы можаце замяніць vbRed іншай канстантай, напрыклад vbGreen, vbYellow, vbBlue і г.д. T спіс падтрымоўваных каляровых канстант можна знайсці тут.

    Гэта як вылучыць паўтаральныя словы ў вочках Excel. Я дзякую вам за чытанне і спадзяюся ўбачыць вас у нашым блогу на наступным тыдні!

    Даступныя спампоўкі

    Прыклады кода для вылучэння дублікатаў у ячэйцы (.xlsm файл)

    Ultimate Поўнафункцыянальная версія пакета на 14 дзён (файл .exe)

    Майкл Браўн - адданы энтузіяст тэхналогій, які любіць спрашчэнне складаных працэсаў з дапамогай праграмных інструментаў. Маючы больш чым дзесяцігадовы досвед працы ў індустрыі тэхналогій, ён удасканальваў свае навыкі ў Microsoft Excel і Outlook, а таксама ў Google Sheets і Docs. Блог Майкла прысвечаны таму, каб падзяліцца сваімі ведамі і вопытам з іншымі, даючы простыя ў выкананні парады і падручнікі для павышэння прадукцыйнасці і эфектыўнасці. Незалежна ад таго, з'яўляецеся вы дасведчаным прафесіяналам або пачаткоўцам, блог Майкла прапануе каштоўную інфармацыю і практычныя парады, каб атрымаць максімальную аддачу ад гэтых неабходных праграмных інструментаў.