Meriv çawa di hucreya Excel de nivîs / peyvên dubare ronî dike

  • Vê Parve Bikin
Michael Brown

Dersdar destnîşan dike ka meriv çawa bi karanîna VBA-yê peyvên dubare an rêzikên nivîsê di nav şaneyek de ronî dike.

Formatkirina şertî ya Excel dihêle ku hûn bi her awayê ku hûn dikarin bifikirin duberan ronî bikin: bi an bêyî bûyerên 1mîn, di stûnek yek an çend stûnan de, şaneyên dûpatkirî yên li pey hev, û tevahiya rêzan li ser bingeha nirxên yeksan ên di stûnek sereke de. Lê, wekî her car, "lê" heye. Rêgezên formkirina şertî li ser astek hucreyê dixebitin dema ku hûn dixwazin li şûna hemî hucreyan nivîsa dubare ronî bikin. Ev tenê bi makroyan dikare were kirin. Tewra ku hûn bi VBA-yê re ne xwedî ezmûn bin jî, ji kerema xwe lez nekin ku vê rûpelê bigirin. Li vir, hûn ê mînakên kodê yên amade-bikaranîna û rêwerzên berfireh li ser çawaniya bikar anîna wan di pelên xebatê de bibînin.

    Di şaneyek ku halê nivîsê paşguh dike de peyvên dubare ronî bikin

    Vê nimûne nîşan dide ka meriv çawa peyvên dubare an rêzikên nivîsê di hundurê hucreyek bi rengê tîpên sor de mîna ku di wêneya jêrîn de tê xuyang kirin, vedigire. Ji kerema xwe bala xwe bidin ku tîpên piçûk û mezin wekî heman tîpan têne hesibandin. Mînakî, Pirteqalî , PIRTEKALÎ û Pirteqalî wekî heman peyvê têne hesibandin.

    koda makroyê wiha ye:

    Public Sub HighlightDupesCaseInsensitive() Hucreya Dim Wek Range Dim Delimiter As String Delimiter = InputBox( "Têvekêşana ku nirxan di şaneyê de ji hev vediqetîne" , "Delimiter", ", ") Ji bo Her HucreyêApplication.Selection Call HighlightDupeWordsInCell(Cell, Deimiter, False) Dawiya Paşê Bin Sub HighlightDupeWordsInCell(Şaneya Wek Range, Veqetandeka Bijarte Wek String = " " , Bijarte CaseSensitive Wek Boolean = Rast) Nivîsa zirav Wek String Dim peyva (Wekî Peyvên Dim String Wek) String Dim wordIndex, matchCount, positionInText As Integer If CaseSensitive Hingê peyv = Split(Cell.Value, Deimiter) Peyvên din = Split(LCase(Cell.Value), Delimiter) Dawî Heke Ji bo peyva Index = LBound (peyv) Bo UBound (peyv) - 1 peyv = peyv(wordIndex) hevjimar = 0 Ji bo nextWordIndex = wordIndex + 1 To UBound (peyv) Heke peyv = peyv(nextWordIndex) Paşê matchCount = matchCount + 1 End If Next NextWordIndex If matchCount > 0 Paşê nivîs = "" Ji bo Indeks = LBound (peyv) To UBound (peyv) nivîs = nivîs & amp; peyvan(Index) Heke (peyvên(Index) = peyv) Hingê Cell.Characters(Len(text) - Len(peyv) + 1, Len(peyv)).Font.Color = vbRed End Heke nivîs = nivîs & Dabeşkirina Dawiya Paşê Heke Next WordIndex End Sub

    Di şaneyek hesas a şaneyê de nivîsa dubare ronî bike

    Di pir rewşan de, dema ku bi navnîşên nivîsê yên Excel re dixebitin, em mêldarê paşguhkirina pîvaza tîpê ne. Lêbelê, di bin hin mercan de, doza nivîsê girîng e. Mînakî, heke hûn bi nasname, şîfre, an tomarên din ên bi vî rengî re mijûl dibin, rêzikên wekî 1-AA , 1-aa û 1-Aa ne dubare ne û divê neyên ronî kirin:

    Di vê rewşê de,guhertoya jêrîn a kodê bikar bînin:

    Public Sub HighlightDupesCaseSensitive() Dim Hucre As Range Dim Delimiter As String Delimiter = InputBox( "Navdêra ku di şaneyê de nirxan ji hev vediqetîne binivîse" , "Delimiter", ", " ) Ji bo Her Cell In Application.Selection Call HighlightDupeWordsInCell(Cell, Deimiter, True) Dawiya Paşê Sub Sub HighlightDupeWordsInCell(Cell Wek Range, Vebijêrk Vebijarkî Wek String = " " , Vebijarkî CaseSensitive As Boolean = Rast) Nivîsa Dim wek String Dim () peyva Wek String Dim wordIndex, matchCount, positionInText As Integer If CaseSensitive Hingê peyv = Split(Cell.Value, Delimiter) Peyvên din = Split(LCase(Cell.Value), Delimiter) Dawî Heke Ji bo peyva Index = LBound (peyv) To UBound ( peyv) - 1 peyv = peyv(wordIndex) hevjimar = 0 Ji bo nextWordIndex = wordIndex + 1 To UBound (peyv) Heke peyv = peyv(nextWordIndex) Paşê matchCount = matchCount + 1 End If Next NextWordIndex Ger matchCount > 0 Paşê nivîs = "" Ji bo Indeks = LBound (peyv) To UBound (peyv) nivîs = nivîs & amp; peyvan(Index) Heke (peyvên(Index) = peyv) Hingê Cell.Characters(Len(text) - Len(peyv) + 1, Len(peyv)).Font.Color = vbRed End Heke nivîs = nivîs & Dabeşkirina Dawiya Paşê Heke Next WordIndex End Sub

    Meriv çawa makroyan bikar tîne da ku peyvên dubare li Excel ronî bike

    Heke hûn di karanîna VBA-yê de destpêk in, rêwerzên jêrîn gav-bi-gav dê bi rehetî we bi rê ve bibin . Dibe ku bikarhênerên pisportenê lînka dakêşanê hilbijêrin û yên mayî bihêlin :)

    Kodê li pirtûka xweya xebatê zêde bikin

    Hûn dest bi danîna koda makroyê di pirtûka xweya xebatê ya Excel de dikin. Bi vî awayî ye:

    1. Pirtûka xebatê ya ku hûn dixwazin dupeyan ronî bikin vekin.
    2. Alt + F11 bikirtînin da ku Edîtorê Visual Basic vekin.
    3. Li pencereya çepê, rast-klîk bike ThisWorkbook û Insert > Module ji pêşeka kontekstê hilbijêre.
    4. Kodê di pencereya Kodê de bihêle.
    5. Ji bo ku makroyê ji bo karanîna paşerojê bihêle, bê guman pirtûka xwe ya xebatê wekî pelek .xlsm ya çalakkirî ya makro hilîne.

    Alternatîf, hûn dikarin pirtûka meya xebatê ya nimûne dakêşin û makroyê ji wir bimeşînin. Pirtûka xebatê ya nimûneyê makroyên jêrîn dihewîne:

    • HighlightDupesCaseInsensitive - di hundurê şaneyê de rengan dide dûbare û guh nade tîpên tîpan.
    • HighlightDupesCaseSensitive - ronîkirin dupes di hucreyê de li ber çavê herfê.

    Ji bo bêtir agahdarî, ji kerema xwe binêre Çawa koda VBA li Excel têxe.

    Makroyê bixebitîne

    Bi kodê re li pirtûka xebatê ya xweya xwe zêde kir an jî pelê meya nimûneyê daxistî û vekir, makroyê bi vî rengî bimeşîne:

    1. Di pelgeya xebatê de, şaneyên ku hûn dixwazin nivîsa dubare ronî bikin hilbijêrin. Dibe ku ev yek rêzek an jî çend rêzikên ne cîran be.
    2. Alt + F8 bikirtînin .
    3. Makroya balkêş hilbijêrin û bikirtînin Run .

    4. Makro dê ji we bipirse ku hûn dabeşkerê diyar bikinku nirxan di şaneyên hilbijartî de ji hev vediqetîne. Veqetandeka pêşwext (di rewşa me de kommayek û valahiyek) dê bixweber di qutiya têketinê de xuya bibe. Li gorî hewcedariyên we, hûn dikarin veqetandeka xwerû bihêlin an jî yekî din binivîsin, û dûv re OK bikirtînin.

    Piştî kêliyek, hemî rêzikên ducarî di ya hilbijartî de şaneyên wê bi rengê sor werin sîya kirin (an jî rengê tîpan di koda we de hatî danîn).

    Serişte. Ji bo ku hûn bi lez dubendan di nav şaneyek de rakin, hûn dikarin Remove Duplicate Substrings, ku yek ji gelek amûrên hilberandina carê ye ku di Suite Ultimate me de cih digire, bikar bînin.

    Çawa kodê li gorî hewcedariyên xwe rast bikin

    Bi van nîşeyên bikaranînê û zanîna pir bingehîn a VBAyê (an jî ji nêz ve talîmatên jêrîn bişopînin), hûn dikarin bi hêsanî kodan li gorî hewcedariyên xwe biguhezînin.

    Li ser heman modulê bi cîh bikin

    Wekî ku hûn dibînin, her du makro ( HighlightDupesCaseSensitive û HighlightDupesCaseInsensitive ) bangî fonksiyona HighlightDupeWordsInCell dikin. Cûdahiya di navbera her du makroyên li jor de tenê di pîvana sêyemîn de ye (CaseSensitive) ku ji fonksiyona navborî re derbas bûye.

    Ji bo lêgerîna hesas-qeydeyê, ew wekî RAST tê danîn:

    Call HighlightDupeWordsInCell(Cell, Delimiter, True)

    Ji bo lêgerîna ku bi rewiştê ne hesas e, ew wekî FALSE hatiye danîn:

    Call HighlightDupeWordsInCell(Cell, Delimiter, False)

    Ji bo ku makro kar bikin, divê koda fonksiyona HighlightDupeWordsInCell li ser were danîn. heman modulê wekîmakro.

    Delimiter

    Dema ku tê xebitandin, makro dê ji te bixwaze ku veqetandek ku di şaneyên hilbijartî de peyvan/rêzan ji hev vediqetîne diyar bike. Veqetandeka xwerû kommayek û valahiyek e (", ") û ew di InputBoxê de pêşwext tê danîn:

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

    Di koda xwe de, hûn azad in ku hûn her karakter(ên) din bikar bînin. wekî veqetandek ji berê ve diyarkirî.

    Reng

    Ji hêla xwerû ve, fonksiyona HighlightDupeWordsInCell di rengê tîpên sor de dubare dibe. Reng di vê rêzê de tê diyarkirin:

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

    Li vir, vbRed celebek rengdêra VBA-yê ye. Ji bo nîşandana dupeyan bi rengek cûda, hûn dikarin vbRed-ê bi domdarek din veguherînin wek vbGreen, vbYellow, vbBlue, hwd. meriv çawa peyvên dubare di hucreyên Excel de ronî dike. Ez spasiya we dikim ji bo xwendinê û hêvî dikim ku hefteya pêş me we li ser bloga xwe bibînim!

    Daxistinên berdest

    Nimûneyên kodê ji bo ronîkirina dubareyên di hucreyekê de (pelê .xlsm)

    Ultimate Guhertoya 14-rojî ya bi tevahî fonksiyonel a suite (pelê .exe)

    Michael Brown dilxwazek teknolojiyê ya dilsoz e ku bi hewesek hêsankirina pêvajoyên tevlihev bi karanîna amûrên nermalavê ye. Bi zêdetirî deh salan ezmûnek di pîşesaziya teknolojiyê de, wî jêhatîbûna xwe di Microsoft Excel û Outlook, û her weha Google Sheets û Docs de pêş xist. Bloga Michael ji bo parvekirina zanyarî û pisporiya xwe bi kesên din re veqetandî ye, ji bo baştirkirina hilberî û karîgeriyê serişte û dersên hêsan-şopandinê peyda dike. Çi hûn pisporek demsalî ne an jî destpêkek in, bloga Michael ji bo ku hûn herî zêde ji van amûrên nermalava bingehîn sûd werbigirin, têgihiştinên hêja û şîretên pratîkî pêşkêşî dike.