Содржина
Упатството покажува како да се означат дупликати зборови или текстуални низи во ќелија со помош на VBA.
Условното форматирање на Excel овозможува да се истакнат дупликатите на секој можен начин на кој можете да замислите: со или без 1-ви појави, во една колона или повеќе колони, последователни дупликати ќелии и цели редови засновани на идентични вредности во клучната колона. Но, како и обично, постои „но“. Правилата за условно форматирање работат на ниво на ќелија додека можеби ќе сакате да означите дупликат текст наместо цели ќелии. Ова може да се направи само со макроа. Дури и ако немате искуство со VBA, ве молиме не брзајте да ја затворите оваа страница. Овде, ќе најдете примери за кодови подготвени за употреба и детални упатства за тоа како да ги користите во вашите работни листови.
Означете ги дупликатите зборови во ќелија која игнорира текстуална буква
Овој пример покажува како да засенчите дупликат зборови или текстуални низи во ќелија во црвена боја на фонтот како што е прикажано на сликата подолу. Забележете дека малите и големите букви се третираат како исти знаци. На пример, портокалова , портокалова и портокалова се сметаат за ист збор.
кодот на макрото е како што следува:
Public Sub HighlightDupesCaseInsensitive() Затемнета ќелија како раздвојувач на затемнети опсег како раздвојувач на низа = InputBox( "Внесете го раздвојувачот што ги одвојува вредностите во ќелијата" , "Одделувач", ", " ) За секоја ќелија воApplication.Selection Call HighlightDupeWordsInCell(Cell, Delimiter, False ) Следен крај Sub Sub HighlightDupeWordsInCell(Cell како опсег, изборен разграниувач како стринг = " " , Изборен CaseSensitive as Boolean = True ) Затемнет текст како низа Затемнети зборови како стринг Затемнети зборови како) Низа затемнет wordIndex, matchCount, positionInText како цел број ако CaseSensitive Потоа зборови = Split(Cell.Value, Delimiter) Други зборови = Split(LCase(Cell.Value), Delimiter) End If For wordIndex = LBound (зборови) To UBound (зборови) - 1 збор = зборови(wordIndex) matchCount = 0 За следниотWordIndex = wordIndex + 1 To UBound (зборови) Ако зборот = зборови (nextWordIndex) Потоа matchCount = matchCount + 1 End If Next nextWordIndex Ако одговара Count > 0 Потоа текст = "" За Индекс = LBound (зборови) До UBound (зборови) текст = текст & засилувач; зборови(Индекс) Ако (зборови(Индекс) = збор) Потоа Cell.Characters(Len(текст) - Лен(збор) + 1, Лен(збор)).Font.Color = vbRed End If text = text & Раздвојувач Next End If Next wordIndex End SubОзначете го дупликат текст во ќелија чувствителна на букви
Во повеќето ситуации, имаме тенденција да ја игнорираме буквата кога работиме со записи на текст во Excel. Меѓутоа, под одредени околности, случајот со текст е важен. На пример, ако се занимавате со ID, лозинки или други записи од тој вид, низите како што се 1-AA , 1-aa и 1-Aa не се дупликати и не треба да се истакнуваат:
Во овој случај,користете ја следнава верзија на кодот:
Public Sub HighlightDupesCaseSensitive() Dim Cell As Range Dim Delimiter As String Delimiter = InputBox( "Внесете го раздвојувачот што ги одвојува вредностите во ќелија" , "Одделувач" , ", " ) За секоја Cell In Application.Selection Call HighlightDupeWordsInCell(Cell, разграничувач, True ) Следен крај Sub Sub HighlightDupeWordsInCell(Cell како опсег, изборен разграничувач како стринг = " " , Изборен CaseSensitive as Boolean = True ) Затемнет текст како низа затемнети зборови () збор како низа Затемнет wordIndex, matchCount, positionInText as integer If CaseSensitive Потоа зборови = Split(Cell.Value, Delimiter) Други зборови = Split(LCase(Cell.Value), Delimiter) End If For wordIndex = LBound (зборови) To UBound ( зборови) - 1 збор = зборови(wordIndex) matchCount = 0 За nextWordIndex = wordIndex + 1 To UBound (зборови) Ако зборот = зборови(nextWordIndex) Потоа matchCount = matchCount + 1 End If Next nextWordIndex Ако matchCount > 0 Потоа текст = "" За Индекс = LBound (зборови) До UBound (зборови) текст = текст & засилувач; зборови(Индекс) Ако (зборови(Индекс) = збор) Потоа Cell.Characters(Len(текст) - Лен(збор) + 1, Лен(збор)).Font.Color = vbRed End If text = text & Раздвојувач Next End If Next wordIndex End SubКако да ги користите макроата за истакнување дупликати зборови во Excel
Ако сте почетник во користењето на VBA, долунаведените чекор-по-чекор инструкции удобно ќе ве водат низ . Искусните корисници можатсамо изберете ја врската за преземање и прескокнете го останатото :)
Додајте го кодот во вашата работна книга
Започнувате со вметнување на кодот на макрото во работната книга на Excel. Еве како:
- Отворете ја работната книга каде што сакате да ги означите измамите.
- Притиснете Alt + F11 за да го отворите уредникот на Visual Basic.
- На левиот панел, кликнете со десното копче на This Workbook и изберете Вметни > Module од контекстното мени.
- Залепете го кодот во прозорецот Code.
- За да го задржите макрото за понатамошна употреба, погрижете се да ја зачувате работната книга како датотека .xlsm со макро.
Алтернативно, можете да ја преземете нашата работна книга примерок и да ја стартувате макрото од таму. Примерокот за работна книга ги содржи следните макроа:
- HighlightDupesCaseInsensitive - ги засенува дупликатите во ќелијата игнорирајќи ја буквата.
- HighlightDupesCaseSensitive - нагласува измами во ќелија со оглед на буквата.
За повеќе информации, погледнете Како да вметнете VBA код во Excel.
Извршете го макрото
Со кодот додадена на вашата работна книга или на нашата датотека со примерок преземена и отворена, стартувајте го макрото на следниов начин:
- Во вашиот работен лист, изберете ги ќелиите каде што сакате да означите дупликат текст. Ова може да биде еден опсег или повеќе несоседни опсези.
- Притиснете Alt + F8 .
- Изберете го макрото што ве интересира и кликнете Изврши .
- Макрото ќе побара од вас да го наведете раздвојувачотшто ги раздвојува вредностите во избраните ќелии. Дефинираното разграничување (запирка и празно место во нашиот случај) автоматски ќе се појави во полето за внесување. Во зависност од вашите потреби, можете да го оставите стандардниот разграниувач или да напишете друг, а потоа кликнете OK.
Момент подоцна, сите дупликати низи во избраниот ќелиите ќе бидат засенчени во црвена боја (или која било боја на фонтот е поставена во вашиот код).
Совет. За брзо отстранување дупликати во ќелија, можете да го користите Отстранете ги дупликатите поднизи, една од многуте алатки за заштеда на време вклучени во нашиот Ultimate Suite.
Како да го прилагодите кодот за вашите потреби
Со овие белешки за употреба и многу основно познавање на VBA (или само внимателно следејќи ги упатствата подолу), можете лесно да ги менувате кодовите во точна согласност со вашите потреби.
Поставете на истиот модул
Како што можете да забележите, двете макроа ( HighlightDupesCaseSensitive и HighlightDupesCaseInsensitive ) ја повикуваат функцијата HighlightDupeWordsInCell . Разликата помеѓу двете макроа погоре е само во третиот параметар (CaseSensitive) кој е предаден на споменатата функција.
За пребарување чувствително на букви, таа е поставена на TRUE:
Call HighlightDupeWordsInCell(Cell, Delimiter, True)
За пребарување без букви, тоа е поставено на FALSE:
Call HighlightDupeWordsInCell(Cell, Delimiter, False)
За да функционираат макроата, кодот на функцијата HighlightDupeWordsInCell мора да се стави на истиот модул како имакроа.
Одделувач
Кога се извршува, макрото ќе побара од вас да го наведете разграничувачот што ги раздвојува зборовите/низите во избраните ќелии. Стандардниот разграниувач е запирка и празно место (", ") и тој е претходно поставен во InputBox:
Delimiter = InputBox("Specify the delimiter that separates values in a cell", "Delimiter", ", ")
Во вашиот код, можете слободно да користите кој било друг знак(и) како предефиниран разграниувач.
Боја
Стандардно, функцијата HighlightDupeWordsInCell се дуплира во црвена боја на фонтот. Бојата е дефинирана во оваа линија:
Cell.Characters(positionInText, Len(word)).Font.Color = vbRed
Овде, vbRed е еден вид VBA константа на боја. За прикажување на dupes во друга боја, можете да го замените vbRed со друга константа како vbGreen, vbYellow, vbBlue, итн. T списокот на поддржани константи на бои може да се најде овде. како да се истакнат дупликатите зборови во ќелиите на Excel. Ви благодарам што прочитавте и се надевам дека ќе се видиме на нашиот блог следната недела!
Достапни преземања
Примери на код за истакнување дупликати во ќелија (датотека .xlsm)
Крајна Комплет 14-дневна целосно функционална верзија (датотека .exe)