අන්තර්ගත වගුව
VBA භාවිතයෙන් සෛලයක් තුළ අනුපිටපත් වචන හෝ පෙළ නූල් උද්දීපනය කරන ආකාරය නිබන්ධනය පෙන්වයි.
Excel කොන්දේසි සහිත හැඩතල ගැන්වීම ඔබට සිතිය හැකි සෑම ආකාරයකින්ම අනුපිටපත් උද්දීපනය කිරීමට හැකි කරයි: 1 වන සංසිද්ධීන් සමඟ හෝ රහිතව, තනි තීරුවක හෝ තීරු කිහිපයක, අඛණ්ඩ අනුපිටපත් කොටු සහ යතුරු තීරුවක සමාන අගයන් මත පදනම් වූ සම්පූර්ණ පේළි. නමුත්, සුපුරුදු පරිදි, "නමුත්" ඇත. ඔබට සම්පූර්ණ කොටු වලට වඩා අනුපිටපත් පෙළ උද්දීපනය කිරීමට අවශ්ය විය හැකි අතර කොන්දේසි සහිත හැඩතල ගැන්වීමේ රීති සෛල මට්ටමින් ක්රියා කරයි. මෙය කළ හැක්කේ macros වලින් පමණි. ඔබට VBA සමඟ අත්දැකීම් නොමැති වුවද, කරුණාකර මෙම පිටුව වසා දැමීමට ඉක්මන් නොවන්න. මෙහිදී, ඔබ භාවිත කිරීමට සූදානම් කේත උදාහරණ සහ ඒවා භාවිත කරන ආකාරය පිළිබඳ සවිස්තර උපදෙස් ඔබේ වැඩ පත්රිකා තුළ සොයා ගනු ඇත.
පෙළ නඩුව නොසලකා හරිමින් කොටුවක අනුපිටපත් වචන උද්දීපනය කරන්න
මෙම උදාහරණය පහත රූපයේ දැක්වෙන පරිදි රතු අකුරු වර්ණයෙන් කොටුවක් තුළ අනුපිටපත් වචන හෝ පෙළ තන්තු සෙවන කරන ආකාරය පෙන්වයි. කුඩා අකුරු සහ ලොකු අකුරු එකම අක්ෂර ලෙස සලකන බව කරුණාවෙන් සලකන්න. උදාහරණයක් ලෙස, තැඹිලි , තැඹිලි සහ තැඹිලි එකම වචනය ලෙස සැලකේ.
macro කේතය පහත පරිදි වේ:
Public Sub HighlightDupesCaseInsensitive() Dim Cell as Range Dim Delimiter As String Delimiter = InputBox( "කොටුවක අගයන් වෙන් කරන පරිසීමකය ඇතුලත් කරන්න" , "Delimiter" , ", " ) එක් එක් සෛලය සඳහාApplication.Selection Call HighlightDupeWordsInCell(Cell, Delimiter, False ) Next End Sub Sub HighlightDupeWordsInCell(Cell ලෙස පරාසය, විකල්ප පරිසීමකය String ලෙස = " " , Optional CaseSensitive as Boolean = True ) Dim text as String Dim වචන (අඳුරු පද ලෙස) String Dim wordIndex, matchCount, positionInText integer ලෙස CaseSensitive නම් වචන = Split(Cell.Value, Delimiter) වෙනත් වචන = Split(LCase(Cell.Value), Delimiter) End For wordIndex = LBound (වචන) සඳහා UBound (වචන) - 1 වචනය = වචන(wordIndex) matchCount = 0 සඳහා nextWordIndex = wordIndex + 1 සිට UBound (වචන) නම් word = වචන(nextWordIndex) එවිට matchCount = matchCount + 1 End ඊලඟ නම් NextWordIndex නම් matchCount > 0 එවිට text = "" Index = LBound (වචන) වෙත UBound (වචන) වෙත text = text & වචන(දර්ශකය) නම් (වචන(දර්ශකය) = වචනය) එවිට Cell.Characters(Len(text) - Len(word) + 1, Len(word)).Font.Color = vbRed End නම් පෙළ = පෙළ & Delimiter Next End If Next wordIndex End SubCell case-sensitive හි අනුපිටපත් පෙළ උද්දීපනය කරන්න
බොහෝ අවස්ථාවන්හිදී, Excel හි පෙළ ඇතුළත් කිරීම් සමඟ වැඩ කිරීමේදී අපි අකුරු නඩුව නොසලකා හැරීමට නැඹුරු වෙමු. කෙසේ වෙතත්, ඇතැම් තත්වයන් යටතේ, පෙළ නඩුව වැදගත් වේ. උදාහරණයක් ලෙස, ඔබ ID, මුරපද, හෝ එවැනි ආකාරයේ වෙනත් වාර්තා සමඟ ගනුදෙනු කරන්නේ නම්, 1-AA , 1-aa සහ 1-Aa<වැනි තන්තු 2> අනුපිටපත් නොවන අතර උද්දීපනය නොකළ යුතුය:
මෙම අවස්ථාවේදී,කේතයේ පහත අනුවාදය භාවිතා කරන්න:
Public Sub HighlightDupesCaseSensitive() Dim Cell as Range Dim Delimiter As String Delimiter = InputBox( "කොටුවක අගයන් වෙන් කරන පරිසීමකය ඇතුලත් කරන්න" , "Delimiter" , ", " ) එක් එක් සඳහා Cell Application.Selection Call HighlightDupeWordsInCell(Cell, Delimiter, True ) ඊලඟ අන්තය Sub Sub HighlightDupeWordsInCell(සෛලය පරාසය ලෙස, විකල්ප පරිසීමකය තන්තුව ලෙස = " " , විකල්ප කේස් සංවේදී ලෙස බූලියන් = සත්ය ලෙස ) අඳුරු අකුරු (තත්පර ලෙස) word As String Dim wordIndex, matchCount, positionInText Integer ලෙස CaseSensitive නම් වචන = Split(Cell.Value, Delimiter) වෙනත් වචන = Split(LCase(Cell.Value), Delimiter) End for wordIndex = LBound (වචන) සඳහා UBound (වචන) වචන) - 1 වචනය = වචන(wordIndex) matchCount = 0 සඳහා nextWordIndex = wordIndex + 1 සිට UBound (වචන) නම් word = වචන(nextWordIndex) එවිට matchCount = matchCount + 1 End නම් Next NextWordIndex නම් matchCount > 0 එවිට text = "" Index = LBound (වචන) වෙත UBound (වචන) වෙත text = text & වචන(දර්ශකය) නම් (වචන(දර්ශකය) = වචනය) එවිට Cell.Characters(Len(text) - Len(word) + 1, Len(word)).Font.Color = vbRed End නම් පෙළ = පෙළ & Delimiter Next End If Next wordIndex End SubExcel හි අනුපිටපත් වචන උද්දීපනය කිරීමට මැක්රෝස් භාවිතා කරන්නේ කෙසේද
ඔබ VBA භාවිතා කිරීමේ ආධුනිකයෙක් නම්, පහත පියවරෙන් පියවර උපදෙස් ඔබට සුවපහසු ලෙස ගෙන යනු ඇත. . පළපුරුදු පරිශීලකයින්ට හැකියබාගත කිරීමේ සබැඳිය තෝරාගෙන ඉතිරිය මඟ හරින්න :)
ඔබේ වැඩපොතට කේතය එක් කරන්න
ඔබ ආරම්භ කරන්නේ මැක්රෝ කේතය ඔබේ Excel වැඩපොතට ඇතුළු කිරීමෙනි. මෙන්න මෙහෙමයි:
- ඔබට ඩුප්ස් ඉස්මතු කිරීමට අවශ්ය වැඩපොත විවෘත කරන්න.
- Visual Basic Editor විවෘත කිරීමට Alt + F11 ඔබන්න.
- වම් කවුළුවෙහි, මෙම වැඩපොත දකුණු-ක්ලික් කර සන්දර්භය මෙනුවෙන් ඇතුළු කරන්න > මොඩියුලය තෝරන්න.
- කේත කවුළුවෙහි කේතය අලවන්න.
- අනාගත භාවිතය සඳහා මැක්රෝව තබා ගැනීමට, ඔබේ වැඩපොත මැක්රෝ-සක්රීය .xlsm ගොනුවක් ලෙස සුරැකීමට වග බලා ගන්න.
විකල්පයක් ලෙස, ඔබට අපගේ නියැදි වැඩපොත බාගත කර එතැනින් මැක්රෝව ධාවනය කළ හැක. නියැදි වැඩපොතෙහි පහත මැක්රෝ අඩංගු වේ:
- HighlightDupesCaseInsensitive - අකුරු නඩුව නොසලකා හරිමින් සෛලයක් තුළ අනුපිටපත් සෙවන.
- HighlightDupesCaseSensitive - ඉස්මතු කිරීම් අකුරු නඩුව සලකා බලමින් කොටුවක dupes.
වැඩිදුර තොරතුරු සඳහා, කරුණාකර Excel හි VBA කේතය ඇතුළත් කරන ආකාරය බලන්න.
macro
කේතය සමඟින් ධාවනය කරන්න. ඔබගේම වැඩපොතට හෝ අපගේ නියැදි ගොනුව බාගත කර විවෘත කර, මැක්රෝ එක මේ ආකාරයට ක්රියාත්මක කරන්න:
- ඔබේ වැඩ පත්රිකාවේ, ඔබට අනුපිටපත් පෙළ උද්දීපනය කිරීමට අවශ්ය කොටු තෝරන්න. මෙය එක් පරාසයක් හෝ යාබද නොවන පරාස කිහිපයක් විය හැක.
- Alt + F8 ඔබන්න .
- කැමැත්ත ඇති මැක්රෝ එක තෝරා ධාවනය ක්ලික් කරන්න.
- මැක්රෝව ඔබෙන් පරිසීමකය සඳහන් කිරීමට අසයිතෝරාගත් සෛලවල අගයන් වෙන් කරයි. පෙර සැකසූ පරිසීමකය (කොමාවක් සහ අපගේ නඩුවේ ඉඩක්) ස්වයංක්රීයව ආදාන කොටුවේ දිස්වනු ඇත. ඔබගේ අවශ්යතා මත පදනම්ව, ඔබට පෙරනිමි පරිසීමකය අත්හැරීමට හෝ වෙනත් එකක් ටයිප් කර OK ක්ලික් කරන්න.
මොහොතකට පසුව, තෝරාගත් සියලුම අනුපිටපත් තන්තු සෛල රතු පැහැයෙන් සෙවන කරනු ලැබේ (හෝ ඔබේ කේතයේ කුමන අකුරු වර්ණය සකසා ඇතත්).
ඉඟිය. කොටුවක් තුළ ඉක්මනින් අනුපිටපත් ඉවත් කිරීමට , ඔබට අපගේ Ultimate Suite හි ඇතුළත් කර ඇති බොහෝ වාර ඉතිරි කිරීමේ මෙවලම්වලින් එකක් වන Remove Duplicate Substrings භාවිතා කළ හැක.
ඔබේ අවශ්යතා සඳහා කේතය සකසන ආකාරය
මෙම භාවිත සටහන් සහ VBA පිළිබඳ ඉතා මූලික දැනුම (හෝ පහත උපදෙස් ඉතා සමීපව අනුගමනය කරමින්), ඔබට පහසුවෙන් ඔබේ අවශ්යතාවලට අනුකූලව කේත වෙනස් කළ හැක.
එකම මොඩියුලයේම තබන්න
ඔබට පෙනෙන පරිදි, macro දෙකම ( HighlightDupesCaseSensitive සහ HighlightDupesCaseInsensitive ) HighlightDupeWordsInCell ක්රියාකාරීත්වය අමතන්න. ඉහත මැක්රෝ දෙක අතර වෙනස ඇත්තේ එම ශ්රිතයට ලබා දුන් 3 වැනි පරාමිතිය (CaseSensitive) තුළ පමණි.
අවස්ථා සංවේදී සෙවීම සඳහා, එය සත්ය ලෙස සකසා ඇත:
Call HighlightDupeWordsInCell(Cell, Delimiter, True)
Case-sensitive search සඳහා, එය FALSE ලෙස සකසා ඇත:
Call HighlightDupeWordsInCell(Cell, Delimiter, False)
මැක්රෝස් ක්රියා කිරීමට, HighlightDupeWordsInCell ශ්රිතයේ කේතය තැබිය යුතුය. එකම මොඩියුලයmacros.
Delimiter
ධාවනය කරන විට, macro විසින් තෝරාගත් කොටු වල වචන/තන්තු වෙන් කරන පරිසීමකය සඳහන් කිරීමට ඔබෙන් අසයි. පෙරනිමි පරිසීමකය කොමාවක් සහ ඉඩක් (", ") වන අතර එය 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 ගොනුව)
Ultimate කට්ටලය-දින 14 සම්පූර්ණ ක්රියාකාරී අනුවාදය (.exe ගොනුව)