Jinsi ya kuangazia maandishi / maneno yanayorudiwa kwenye seli ya Excel

  • Shiriki Hii
Michael Brown

Mafunzo yanaonyesha jinsi ya kuangazia nakala za maneno au mifuatano ya maandishi ndani ya kisanduku kwa kutumia VBA.

Uumbizaji wa Masharti wa Excel huwezesha kuangazia nakala kwa kila njia unayoweza kufikiria: yenye au bila matukio ya 1, katika safu wima moja au safu wima nyingi, seli rudufu zinazofuatana, na safu mlalo nzima kulingana na thamani zinazofanana katika safu wima muhimu. Lakini, kama kawaida, kuna "lakini". Sheria za uumbizaji wa masharti hufanya kazi kwenye kiwango cha seli huku unaweza kutaka kuangazia nakala rudufu badala ya visanduku vyote. Hii inaweza tu kufanywa na macros. Hata kama huna uzoefu wowote na VBA, tafadhali usikimbilie kufunga ukurasa huu. Hapa, utapata mifano ya msimbo iliyo tayari kutumika na maagizo ya kina kuhusu jinsi ya kuzitumia katika laha zako za kazi.

    Angazia nakala za maneno katika kisanduku cha kupuuza herufi

    Mfano huu unaonyesha jinsi ya kuweka kivuli nakala ya maneno au mifuatano ya maandishi ndani ya kisanduku katika rangi nyekundu ya fonti kama inavyoonyeshwa kwenye picha hapa chini. Tafadhali kumbuka kuwa herufi ndogo na kubwa zinachukuliwa kama herufi sawa. Kwa mfano, chungwa , CHUNGWA na Machungwa yanachukuliwa kuwa neno moja.

    The msimbo wa macro ni kama ifuatavyo:

    Public Sub HighlightDupesCaseInsensitive() Dim Cell As Range Dim Delimiter As String Delimiter = InputBox( "Ingiza kikomo kinachotenganisha thamani katika kisanduku" , "Delimiter" , ", " ) Kwa Kila Kisanduku NdaniApplication.Selection Call HighlightDupeWordsInCell(Cell, Delimiter, False ) Next End Sub SublightDupeWordsInCell(Cell As Range, Optional Delimiter As String = " " , Hiari CaseSensitive As Boolean = True ) Fifisha maandishi Kama Kamba Dim maneno() Kama Kamba Dim ya neno Kama Mfuatano Dim wordIndex, matchCount, positionInText As Integer If CaseSensitive Kisha maneno = Split(Cell.Value, Delimiter) Maneno mengine = Gawanya(LCase(Cell.Value), Delimiter) Maliza Ikiwa Kwa wordIndex = LBound (maneno) Ili Upande (maneno) - Neno 1 = maneno(wordIndex) matchCount = 0 Kwa nextWordIndex = wordIndex + 1 Ili Kupunguza (maneno) Ikiwa neno = maneno(nextWordIndex) Kisha matchCount = matchCount + 1 Mwisho Ikiwa InayofuataWordIndex Kama matchCount > 0 Kisha maandishi = "" Kwa Index = LBound (maneno) Ili UBUund (maneno) maandishi = maandishi & maneno(Index) Iwapo (maneno(Index) = neno) Kisha Cell.Herufi(Len(text) - Len(neno) + 1, Len(neno)).Font.Color = vbRed End If text = text & Delimiter Next End Kama Next wordIndex End Sub

    Angazia nakala ya maandishi katika kisanduku nyeti

    Katika hali nyingi, huwa tunapuuza herufi tunapofanya kazi na maingizo ya maandishi katika Excel. Katika hali fulani, hata hivyo, kesi ya maandishi ni muhimu. Kwa mfano, ikiwa unashughulikia vitambulisho, nenosiri, au rekodi nyingine za aina hiyo, mifuatano kama vile 1-AA , 1-aa na 1-Aa si nakala na haipaswi kuangaziwa:

    Katika hali hii,tumia toleo lifuatalo la msimbo:

    Public Sub HighlightDupesCaseSensitive() Dim Cell Kama Masafa Dim Delimiter As String Delimiter = InputBox( "Ingiza kikomo kinachotenganisha thamani katika kisanduku" , "Delimiter" , ", " ) Kwa Kila Kiini Katika Maombi.Simu ya Uteuzi HighlightDupeWordsInCell(Cell, Delimiter, True ) Next End Sub SublightDupeWordsInCell(Cell As Range, Optional Delimiter As String = " " , Hiari Kesi Nyeti Kama Boolean = Kweli ) Punguza maandishi Kama Maneno ya Kamba Dim() Kama Kamba Dim neno Kama Kamba Dim wordIndex, matchCount, positionInText As Integer If CaseSensitive Kisha maneno = Split(Cell.Thamani, Delimiter) Maneno mengine = Gawanya(LCase(Cell.Value), Delimiter) Maliza Ikiwa Kwa wordIndex = LBound (maneno) Ili Kupunguza ( maneno) - 1 neno = maneno(wordIndex) matchCount = 0 Kwa nextWordIndex = wordIndex + 1 Ili Upande (maneno) Ikiwa neno = maneno(nextWordIndex) Kisha matchCount = matchCount + 1 Mwisho If Next nextWordIndex If matchCount > 0 Kisha maandishi = "" Kwa Index = LBound (maneno) Ili UBUund (maneno) maandishi = maandishi & maneno(Index) Ikiwa (maneno(Index) = neno) Kisha Cell.Herufi(Len(text) - Len(neno) + 1, Len(neno)).Font.Color = vbRed Mwisho Ikiwa maandishi = maandishi & Delimiter Next End Kama Next wordIndex End Sub

    Jinsi ya kutumia macros kuangazia maneno yaliyorudiwa katika Excel

    Ikiwa wewe ni mwanzilishi katika kutumia VBA, maagizo yaliyo hapa chini ya hatua kwa hatua yatakuelekeza kwa raha. . Watumiaji wenye uzoefu wanawezachagua tu kiungo cha kupakua na uruke vingine :)

    Ongeza msimbo kwenye kitabu chako cha kazi

    Unaanza kwa kuingiza msimbo wa jumla kwenye kitabu chako cha kazi cha Excel. Hivi ndivyo unavyofanya:

    1. Fungua kitabu cha kazi ambapo ungependa kuangazia nakala.
    2. Bonyeza Alt + F11 ili kufungua Kihariri cha Msingi cha Visual.
    3. Kwenye kidirisha cha kushoto, bofya kulia Kitabu hiki cha Kazi na uchague Ingiza > Moduli kutoka kwenye menyu ya muktadha.
    4. Bandika msimbo kwenye dirisha la Msimbo.
    5. Ili kuhifadhi jumla kwa matumizi ya siku zijazo, hakikisha umehifadhi kitabu chako cha kazi kama faili ya .xlsm iliyowezeshwa kwa kiasi kikubwa.

    Vinginevyo, unaweza kupakua sampuli ya kitabu chetu cha kazi na kuendesha macro kutoka hapo. Mfano wa kitabu cha kazi kina makro zifuatazo:

    • HighlightDupesCaseInsensitive - vivuli vinarudiwa ndani ya kisanduku kinachopuuza herufi.
    • HighlightDupesCaseSensitive - vivutio dupe kwenye seli ikizingatia herufi.

    Kwa maelezo zaidi, tafadhali angalia Jinsi ya kuingiza msimbo wa VBA katika Excel.

    Endesha jumla

    Kwa msimbo iliyoongezwa kwenye kitabu chako cha kazi au sampuli ya faili yetu iliyopakuliwa na kufunguliwa, endesha jumla kwa njia hii:

    1. Katika lahakazi yako, chagua visanduku ambapo ungependa kuangazia nakala rudufu. Hii inaweza kuwa safu moja au safu nyingi zisizo karibu.
    2. Bonyeza Alt + F8 .
    3. Chagua jumla ya masafa na ubofye Run .

    4. Jumla itakuuliza ubainishe kikomoambayo hutenganisha thamani katika seli zilizochaguliwa. Delimiter iliyowekwa awali (koma na nafasi kwa upande wetu) itaonekana kwenye kisanduku cha kuingiza kiotomatiki. Kulingana na mahitaji yako, unaweza kuacha kikomo chaguo-msingi au kuandika tofauti, kisha ubofye SAWA.

    Muda mfupi baadaye, mifuatano yote nakala katika uliyochagua. seli zitatiwa kivuli kwa rangi nyekundu (au rangi yoyote ya fonti iliyowekwa kwenye msimbo wako).

    Kidokezo. Ili kuondoa nakala kwa haraka ndani ya kisanduku, unaweza kutumia Ondoa Nakala Nakala, mojawapo ya zana nyingi za kuhifadhi wakati zilizojumuishwa kwenye Ultimate Suite yetu.

    Jinsi ya kurekebisha msimbo kwa mahitaji yako

    Kwa madokezo haya ya matumizi na maarifa ya kimsingi ya VBA (au kwa kufuata tu maagizo yaliyo hapa chini kwa ukaribu), unaweza kurekebisha misimbo kwa urahisi kulingana na mahitaji yako.

    Weka sehemu sawa

    Kama unavyoweza kugundua, macros zote mbili ( HighlightDupesCaseSensitive na HighlightDupesCaseInsensitive ) huita HighlightDupeWordsInCell function. Tofauti kati ya makro mbili hapo juu iko katika kigezo cha 3 pekee (CaseSensitive) kilichopitishwa kwa chaguo la kukokotoa lililosemwa.

    Kwa utafutaji unaozingatia hali, imewekwa kuwa TRUE:

    Call HighlightDupeWordsInCell(Cell, Delimiter, True)

    Kwa utafutaji usiojali kesi, imewekwa kuwa FALSE:

    Call HighlightDupeWordsInCell(Cell, Delimiter, False)

    Ili macros kufanya kazi, msimbo wa kitendakazi cha HighlightDupeWordsInCell lazima iwekwe kwenye moduli sawa namacros.

    Delimiter

    Inapoendeshwa, macro itakuuliza ubainishe kikomo kinachotenganisha maneno/mifuatano katika visanduku vilivyochaguliwa. Kitenganishi chaguo-msingi ni koma na nafasi (", ") na kimewekwa tayari katika Sanduku la Kuingiza:

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

    Katika msimbo wako, uko huru kutumia vibambo vingine vyovyote. kama kikomo kilichoainishwa awali.

    Rangi

    Kwa chaguo-msingi, HighlightDupeWordsInCell vivuli vya kazi hujirudia katika rangi nyekundu ya fonti. Rangi imefafanuliwa katika mstari huu:

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

    Hapa, vbRed ni aina ya rangi ya VBA isiyobadilika. Ili kuonyesha nakala katika rangi tofauti, unaweza kubadilisha vbRed na nyingine isiyobadilika kama vile vbGreen, vbManjano, vbBlue, n.k. T orodha yake ya rangi zinazotumika zinaweza kupatikana hapa.

    Hiyo jinsi ya kuangazia maneno yanayorudiwa katika seli za Excel. Ninakushukuru kwa kusoma na natumai kukuona kwenye blogu yetu wiki ijayo!

    Vipakuliwa vinavyopatikana

    mifano ya msimbo ili kuangazia nakala katika kisanduku (.xlsm file)

    Mwisho Toleo linalofanya kazi kikamilifu la siku 14 (.exe faili)

    Michael Brown ni mpenda teknolojia aliyejitolea na mwenye shauku ya kurahisisha michakato changamano kwa kutumia zana za programu. Akiwa na uzoefu wa zaidi ya muongo mmoja katika tasnia ya teknolojia, ameboresha ujuzi wake katika Microsoft Excel na Outlook, pamoja na Majedwali ya Google na Hati. Blogu ya Michael imejitolea kushiriki maarifa na ujuzi wake na wengine, kutoa vidokezo na mafunzo ambayo ni rahisi kufuata ili kuboresha tija na ufanisi. Iwe wewe ni mtaalamu aliyebobea au umeanza, blogu ya Michael inatoa maarifa muhimu na ushauri wa vitendo ili kupata manufaa zaidi kutoka kwa zana hizi muhimu za programu.