Բովանդակություն
Ուսուցումը ցույց է տալիս, թե ինչպես կարելի է ընդգծել կրկնօրինակ բառերը կամ տեքստային տողերը բջիջում VBA-ի միջոցով:
Excel-ի պայմանական ֆորմատավորումը հնարավորություն է տալիս ընդգծել կրկնօրինակները ամեն կերպ, ինչի մասին կարող եք մտածել. 1-ին երևույթներով կամ առանց, մեկ սյունակում կամ մի քանի սյունակներում, հաջորդական կրկնվող բջիջներում և առանցքային սյունակի նույն արժեքների վրա հիմնված ամբողջ տողերում: Բայց, ինչպես միշտ, կա «բայց». Պայմանական ձևաչափման կանոնները գործում են բջջային մակարդակում, մինչդեռ դուք կարող եք ընդգծել կրկնօրինակ տեքստը, այլ ոչ թե ամբողջ բջիջները: Դա կարելի է անել միայն մակրոներով: Նույնիսկ եթե VBA-ի հետ կապված որևէ փորձ չունեք, խնդրում ենք մի շտապեք փակել այս էջը: Այստեղ դուք կգտնեք օգտագործման համար պատրաստ կոդի օրինակներ և մանրամասն հրահանգներ, թե ինչպես դրանք օգտագործել ձեր աշխատաթերթերում:
Նշեք կրկնօրինակ բառերը բջիջում՝ անտեսելով տեքստային տառերը
Այս օրինակը ցույց է տալիս, թե ինչպես կարելի է ստվերել կրկնօրինակ բառերը կամ տեքստային տողերը բջիջում կարմիր տառատեսակի գույնով, ինչպես ցույց է տրված ստորև նկարում: Խնդրում ենք նկատի ունենալ, որ փոքրատառ և մեծատառ տառերը համարվում են նույն նիշերը: Օրինակ, նարնջագույն , ORANGE և Orange համարվում են նույն բառը:
The մակրոյի կոդը հետևյալն է.
Public Sub HighlightDupesCaseInsensitive() Dim Cell As Range Dim Delimiter As String Delimiter = InputBox( "Enter the delimiter, որը բաժանում է արժեքները բջիջում" , "Delimiter", ", " ) For Every Cell InApplication.Selection Call HighlightDupeWordsInCell(Cell, Delimiter, False) Հաջորդ վերջը Sub Sub HighlightDupeWordsInCell(Cell As Range, Optional Delimiter As String = " " , Ընտրովի CaseSensitive As Boolean = True) Dim տեքստը որպես String Dim բառեր (որպես) 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 NextWordIndex = wordIndex + 1 To UBound (բառեր) If word = words(nextWordIndex) Ապա matchCount = matchCount + 1 End If Next nextWordIndex If matchCount > 0 Այնուհետեւ տեքստ = "" For Index = LBound (բառեր) To UBound (բառեր) text = text & բառեր(Ինդեքս) Եթե (բառեր(Ինդեքս) = բառ) Ապա Cell.Characters(Len(text) - Len(բառ) + 1, Len(բառ)).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( "Enter the delimiter, որը բաժանում է արժեքները բջիջում" , "Delimiter", ", " ) Յուրաքանչյուրի համար Cell In Application.Selection Call HighlightDupeWordsInCell(Cell, Delimiter, True) Հաջորդ վերջը Sub HighlightDupeWordsInCell(Cell As Range, Optional Delimiter As String = " " , Ընտրովի CaseSensitive As Boolean = True ) Dim տեքստը որպես String Dim բառը որպես տող Dim wordIndex, matchCount, positionInText որպես ամբողջ թիվ If CaseSensitive Այնուհետեւ բառեր = Split(Cell.Value, Delimiter) Else words = Split(LCase(Cell.Value), Delimiter) End If For wordIndex = LBound (բառեր) To UBound ( բառեր) - 1 բառ = բառեր (wordIndex) matchCount = 0 NextWordIndex = wordIndex + 1 To UBound (բառեր) If word = words(nextWordIndex) Ապա matchCount = matchCount + 1 End If Next nextWordIndex If matchCount > 0 Այնուհետեւ տեքստ = "" For Index = LBound (բառեր) To UBound (բառեր) text = text & բառեր(Ինդեքս) Եթե (բառեր(Ինդեքս) = բառ) Հետո Cell.Characters(Len(text) - Len(բառ) + 1, Len(բառ)).Font.Color = vbRed End If text = text & Սահմանազատող Next End If Next wordIndex End SubԻնչպես օգտագործել մակրոները Excel-ում կրկնվող բառերն ընդգծելու համար
Եթե դուք սկսնակ եք VBA-ի օգտագործման մեջ, ստորև բերված քայլ առ քայլ հրահանգները ձեզ հարմարավետ կուղեկցեն . Փորձառու օգտվողները կարող ենպարզապես ընտրեք ներբեռնման հղումը և բաց թողեք մնացածը :)
Ավելացրեք կոդը ձեր աշխատանքային գրքում
Դուք սկսում եք մակրոյի կոդը ձեր Excel-ի աշխատանքային գրքում տեղադրելով: Ահա թե ինչպես.
- Բացեք աշխատանքային գրքույկը, որտեղ ցանկանում եք ընդգծել կեղծիքները:
- Սեղմեք Alt + F11՝ Visual Basic խմբագրիչը բացելու համար:
- Ձախ վահանակում, աջ սեղմեք This Workbook և ընտրեք Տեղադրել > Module համատեքստի ընտրացանկից:
- Տեղադրեք կոդը կոդի պատուհանում:
- Մակրոն հետագա օգտագործման համար պահելու համար, համոզվեք, որ ձեր աշխատանքային գիրքը պահեք որպես մակրո-միացված .xlsm ֆայլ:
Այլընտրանքով, կարող եք ներբեռնել մեր աշխատանքային գրքույկի նմուշը և այնտեղից գործարկել մակրո: Աշխատանքային գրքույկի նմուշը պարունակում է հետևյալ մակրոները.
- HighlightDupesCaseInsensitive - երանգավորում է վանդակի կրկնօրինակները` անտեսելով տառերի մեծատառը:
- HighlightDupesCaseSensitive - ընդգծում է խաբում է բջիջում՝ հաշվի առնելով տառերի տառերը:
Լրացուցիչ տեղեկությունների համար տե՛ս Ինչպես տեղադրել VBA կոդը Excel-ում:
Գործարկել մակրո
Կոդով ավելացված է ձեր սեփական աշխատանքային գրքում կամ ներբեռնված և բացված մեր նմուշի ֆայլը, գործարկեք մակրոն հետևյալ կերպ.
- Ձեր աշխատաթերթում ընտրեք այն բջիջները, որտեղ ցանկանում եք ընդգծել կրկնօրինակ տեքստը: Սա կարող է լինել մեկ տիրույթ կամ մի քանի ոչ հարակից միջակայք:
- Սեղմեք Alt + F8 :
- Ընտրեք հետաքրքրող մակրո և սեղմեք Գործարկել :
- Մակրոն կխնդրի ձեզ նշել սահմանազատիչըորը առանձնացնում է ընտրված բջիջների արժեքները: Նախադրված սահմանազատիչը (մեր դեպքում ստորակետ և բացատ) ավտոմատ կերպով կհայտնվի մուտքագրման վանդակում: Կախված ձեր կարիքներից, դուք կարող եք թողնել լռելյայն սահմանազատիչը կամ մուտքագրել մեկ ուրիշը, այնուհետև սեղմել OK:
Մի պահ անց բոլոր կրկնօրինակ տողերը ընտրվածում բջիջները կստվերվեն կարմիր գույնով (կամ ցանկացած տառատեսակի գույն, որը սահմանված է ձեր կոդի մեջ):
Խորհուրդ. Բջջի ներսում կրկնօրինակները արագ հեռացնելու համար կարող եք օգտագործել Remove Duplicate Substrings-ը, որը մեր Ultimate Suite-ում ներառված բազմաթիվ անգամներ խնայող գործիքներից մեկն է:
Ինչպես հարմարեցնել կոդը ձեր կարիքների համար
<. 0>Օգտագործման այս նշումներով և VBA-ի շատ տարրական գիտելիքներով (կամ պարզապես ուշադիր հետևելով ստորև նշված հրահանգներին), կարող եք հեշտությամբ փոփոխել ծածկագրերը ձեր կարիքներին համապատասխան:Տեղադրեք նույն մոդուլում
Ինչպես կարող եք նկատել, երկու մակրոներն էլ ( HighlightDupesCaseSensitive և HighlightDupesCaseInsensitive ) կանչում են HighlightDupeWordsInCell ֆունկցիան: Վերոնշյալ երկու մակրոների միջև տարբերությունը միայն նշված գործառույթին փոխանցված 3-րդ պարամետրում է (CaseSensitive):
Փորձերի զգայուն որոնման համար այն սահմանվում է TRUE:
Call HighlightDupeWordsInCell(Cell, Delimiter, True)
Տառապանծերի համար անզգույշ որոնման համար այն սահմանվել է FALSE:
Call HighlightDupeWordsInCell(Cell, Delimiter, False)
Որպեսզի մակրոներն աշխատեն, HighlightDupeWordsInCell ֆունկցիայի կոդը պետք է տեղադրվի: նույն մոդուլը, ինչմակրոներ:
Delimiter
Երբ գործարկվում է, մակրոն կխնդրի ձեզ նշել այն սահմանազատիչը, որը բաժանում է բառերը/տողերը ընտրված բջիջներում: Լռելյայն սահմանազատիչը ստորակետ է և բացատ (», «) և այն նախադրված է InputBox-ում.
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 ֆայլ)
Վերջնական Suite 14-օրյա լիարժեք ֆունկցիոնալ տարբերակ (.exe ֆայլ)