Mar a chomharraicheas tu teacsa / faclan dùblaichte ann an cealla Excel

  • Roinn Seo
Michael Brown

Tha an oideachadh a’ sealltainn mar a shoilleiricheas tu faclan dùblaichte no sreangan teacsa taobh a-staigh cealla le bhith a’ cleachdadh VBA.

Tha Excel Conditional Formatadh ga dhèanamh comasach dùblaidhean a chomharrachadh anns a h-uile dòigh as urrainn dhut smaoineachadh air: le no às aonais tachartasan 1st, ann an aon cholbh no ioma-cholbh, ceallan dùblaichte leantainneach, agus sreathan slàn stèidhichte air luachan co-ionann ann am prìomh cholbh. Ach, mar as àbhaist, tha "ach". Bidh riaghailtean cruth cumhach ag obair air ìre cealla agus is dòcha gum bi thu airson teacsa dùblaichte a shoilleireachadh seach ceallan slàn. Chan urrainnear seo a dhèanamh ach le macros. Fiù mura h-eil eòlas sam bith agad le VBA, na bi cabhag gus an duilleag seo a dhùnadh. An seo, gheibh thu eisimpleirean còd deiseil airson an cleachdadh agus an stiùireadh mionaideach air mar a chleachdas tu iad anns na duilleagan-obrach agad.

    Seall faclan dùblaichte ann an cealla gun a bhith a’ seachnadh cùis teacsa

    Tha an eisimpleir seo a’ sealltainn mar a chuireas tu sgàil air faclan dùblaichte no sreangan teacsa taobh a-staigh cealla ann an dath cruth-clò dearg mar a chithear san dealbh gu h-ìosal. Thoir an aire gu bheilear a’ làimhseachadh litrichean beaga is mòra mar na h-aon charactaran. Mar eisimpleir, tha orange , ORANGE agus Orange air am meas mar an aon fhacal.

    An tha còd macro mar a leanas:

    Public Sub HighlightDupesCaseInsensitive() Dim Cell As Range Dim Delimiter As String Delimiter = InputBox ( "Cuir a-steach an t-iomallaiche a tha a' sgaradh luachan ann an cealla", "Delimiter", ",") Airson gach cill a-staighApplication.Selection Call HighlightDupeWordsInCell(Cell, Delimiter, False) An ath-cheann Fo-HighlightDupeWordsInCell(Cell As Range, Optional Delimiter As String = " " , Cùis Roghainneil Mothachail mar Boolean = Fìor ) Teacs dim Mar String Dim Faclan() Mar String Dim Word As String Dim wordIndex, matchCount, positionInText As Integer If CaseSensitive An uairsin faclan = Split(Cell.Value, Delimiter) Faclan eile = Split(LCase(Cell.Value), Delimiter) Crìoch Ma tha Airson wordIndex = LBound (faclan) Gu UBound (faclan) - 1 facal = faclan (wordIndex) matchCount = 0 Airson nextWordIndex = wordIndex + 1 Gu UBound (faclan) Ma tha word = words(nextWordIndex) An uairsin matchCount = matchCount + 1 Deireadh Ma tha an ath rud nextWordIndex Ma tha matchCount > 0 An uairsin teacsa = "" Airson Clàr-innse = LBound (faclan) Gu UBound (faclan) text = teacsa & faclan (Clàr-innse) Ma tha (faclan(Index) = facal) An uairsin Cell.Characters(Len(text) - Len(word) + 1, Len(word)).Font.Color = vbRed End Ma tha teacsa = text & Delimiter An ath Chrìoch Ma tha an ath fhacalIndex End Fo

    Thoir an aire do theacsa dùblaichte ann an cùis cealla a tha mothachail

    Anns a’ mhòr-chuid de shuidheachaidhean, bidh sinn buailteach a bhith a’ seachnadh cùis na litreach nuair a bhios sinn ag obair le inntrigidhean teacsa ann an Excel. Ann an suidheachaidhean sònraichte, ge-tà, tha cùis teacsa cudromach. Mar eisimpleir, ma tha thu a’ dèiligeadh ri IDan, faclan-faire, no clàran eile den t-seòrsa sin, na teudan mar 1-AA , 1-aa agus 1-Aa nach eil nan dùblaidhean agus cha bu chòir an comharrachadh:

    Sa chùis seo,cleachd an dreach a leanas den chòd:

    Public Sub HighlightDupesCaseSensitive() Dim Cell As Range Dim Delimiter As String Delimiter = InputBox ( "Cuir a-steach an t-iomallaiche a tha a' sgaradh luachan ann an cealla", "Delimiter", ",") Airson gach Cell In Application.Selection Call HighlightDupeWordsInCell(Cell, Delimiter, True) An ath cheann Fo-HighlightDupeWordsInCell(Cell As Range, Optional Delimiter As String = " " , Roghainneil CaseSensitive As Boolean = True ) Teacs dim Mar String Dim Faclan() As String Dim word As String Dim wordIndex, matchCount, positionInText As Integer If CaseSensitive An uairsin faclan = Split(Cell.Value, Delimiter) Faclan eile = Split(LCase(Cell.Value), Delimiter) Crìoch Ma tha Airson wordIndex = LBound (faclan) Gu UBound ( faclan) - 1 facal = faclan (wordIndex) matchCount = 0 Airson nextWordIndex = wordIndex + 1 Gu UBound (faclan) Ma tha word = words(nextWordIndex) An uairsin matchCount = matchCount + 1 Crìoch Ma tha an ath athWordIndex Ma tha matchCount > 0 An uairsin teacsa = "" Airson Clàr-innse = LBound (faclan) Gu UBound (faclan) text = teacsa & faclan (Clàr-innse) Ma tha (faclan(Index) = facal) An uairsin Cell.Characters(Len(text) - Len(word) + 1, Len(word)).Font.Color = vbRed End Ma tha teacsa = text & Delimiter An ath Cheann Ma tha an ath fhacalIndex End Fo

    Mar a chleachdas tu na macros gus faclan dùblaichte ann an Excel a chomharrachadh

    Ma tha thu nad neach-tòiseachaidh ann a bhith a’ cleachdadh VBA, coisichidh an stiùireadh ceum air cheum gu h-ìosal thu troimhe . Faodaidh luchd-cleachdaidh eòlachdìreach tagh an ceangal luchdaich sìos agus leum air a’ chòrr :)

    Cuir an còd ris an leabhar-obrach agad

    Tòisichidh tu le bhith a’ cuir a-steach còd macro anns an leabhar-obrach Excel agad. Seo mar a leanas:

    1. Fosgail an leabhar-obrach far a bheil thu airson dupes a shoilleireachadh.
    2. Brùth Alt + F11 gus an deasaiche Visual Basic fhosgladh.
    3. Air a’ phana chlì, deas-bhriog An Leabhar-obrach Seo agus tagh Cuir a-steach > Modal on chlàr-taice cho-theacsa.
    4. Cuir a-steach an còd ann an uinneag a’ Chòd.
    5. Gus am macro a chumail airson a chleachdadh san àm ri teachd, dèan cinnteach gun sàbhail thu an leabhar-obrach agad mar fhaidhle .xlsm le macro-comas.

    Air neo, faodaidh tu an leabhar-obrach sampall againn a luchdachadh sìos agus am macro a ruith às an sin. Anns an leabhar-obrach sampaill tha na macros a leanas:

    • HighlightDupesCaseInsensitive - dubhar a’ dùblachadh taobh a-staigh cealla gun a bhith a’ seachnadh cùis na litreach.
    • HighlightDupesCaseSensitive - seallaidhean dupes ann an cealla a’ beachdachadh air a’ chùis litreach.

    Airson tuilleadh fiosrachaidh, faic Mar a chuireas tu còd VBA a-steach ann an Excel.

    Ruith am macro

    Leis a’ chòd Air a chur ris an leabhar-obrach agad fhèin no am faidhle sampall againn air a luchdachadh sìos agus fhosgladh, ruith am macro san dòigh seo:

    1. Anns an duilleag-obrach agad, tagh na ceallan far a bheil thu airson teacsa dùblaichte a shoilleireachadh. Faodaidh seo a bhith mar aon raon no iomadh raon nach eil faisg air làimh.
    2. Brùth Alt + F8 .
    3. Tagh am macro ùidh agus cliog Ruith .

    4. Iarraidh am macro ort an t-iomraiche a shònrachadha tha a’ sgaradh nan luachan anns na ceallan taghte. Nochdaidh an delimiter ro-shuidhichte (coma agus àite sa chùis againn) sa bhogsa a-steach gu fèin-ghluasadach. A rèir do fheumalachdan, faodaidh tu an t-inneal-tomhais bunaiteach fhàgail no fear eile a thaipeadh, agus an uairsin cliog air OK. bidh dath dearg air ceallan (no ge bith dè an dath cruth-clò a tha air a shuidheachadh sa chòd agad).

      Tip. Gus dùblaidhean a thoirt air falbh gu sgiobalta taobh a-staigh cealla, faodaidh tu Remove Duplicate Substrings a chleachdadh, aon de dh’ iomadh inneal sàbhalaidh a tha san t-sreath Ultimate againn.

      Mar a dh’ atharraicheas tu an còd airson na feumalachdan agad

      Leis na notaichean cleachdaidh seo agus an eòlas bunaiteach air VBA (no dìreach a’ leantainn an stiùiridh gu h-ìosal), ’s urrainn dhut na còdan atharrachadh gu furasta a rèir do fheumalachdan.

      Cuir air an aon mhodal

      Mar a chì thu, bidh an dà mhacro ( HighlightDupesCaseSensitive agus HighlightDupesCaseInsensitive ) a’ gairm an gnìomh HighlightDupeWordsInCell . Chan eil an diofar eadar an dà mhacras gu h-àrd ach anns an 3mh paramadair (CaseSensitive) a chaidh a thoirt don ghnìomh sin.

      Airson rannsachadh a tha mothachail air cùis, tha e air a shuidheachadh gu TRUE:

      Call HighlightDupeWordsInCell(Cell, Delimiter, True)

      Airson rannsachadh cùis-mhothachail, tha e air a shuidheachadh gu FALSE:

      Call HighlightDupeWordsInCell(Cell, Delimiter, False)

      Airson na macros obrachadh, feumar còd na gnìomh HighlightDupeWordsInCell a chur air an aon mhodal ris anmacros.

      Delimiter

      Nuair a thèid a ruith, iarraidh am macro ort an t-eadar-mhìneachaidh a shònrachadh a tha a’ sgaradh fhaclan/sreathan anns na ceallan taghte. 'S e cromag agus àite (", ") a th' anns an delimiter bunaiteach agus tha e ro-shuidhichte san InputBox:

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

      Sa chòd agad, faodaidh tu caractar(ean) sam bith eile a chleachdadh mar an delimiter ro-mhìnichte.

      Dath

      Gu gnàthach, bidh na cumaidhean gnìomh HighlightDupeWordsInCell a’ dùblachadh ann an dath cruth-clò dearg. Tha an dath air a mhìneachadh san loidhne seo:

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

      An seo, tha vbRed na sheòrsa de sheasmhachd dath VBA. Gus dupes a thaisbeanadh ann an dath eadar-dhealaichte, faodaidh tu seasmhach eile leithid vbGreen, vbYellow, vbBlue, msaa a chur an àite vbRed. mar a chomharraicheas tu faclan dùblaichte ann an ceallan Excel. Tha mi a' toirt taing dhut airson an leughadh agus an dòchas ur faicinn air a' bhlog againn an ath sheachdain!

      Luchdaich a-nuas ri fhaighinn

      Còd eisimpleirean gus dùblaidhean ann an cealla a chomharrachadh (faidhle .xlsm)

      Deireannach Suite dreach làn-ghnìomhach 14-latha (faidhle .exe)

    Tha Mìcheal Brown dèidheil air teicneòlas sònraichte le dìoghras airson pròiseasan iom-fhillte a dhèanamh nas sìmplidhe a’ cleachdadh innealan bathar-bog. Le còrr air deich bliadhna de eòlas anns a’ ghnìomhachas teignigeach, tha e air urram a thoirt dha na sgilean aige ann am Microsoft Excel agus Outlook, a bharrachd air Google Sheets agus Docs. Tha blog Mhìcheil gu sònraichte airson a chuid eòlais agus eòlais a cho-roinn le daoine eile, a’ toirt seachad molaidhean agus clasaichean-oideachaidh a tha furasta a leantainn airson cinneasachd agus èifeachdas a leasachadh. Ge bith co-dhiù a tha thu nad neach-proifeiseanta eòlach no nad neach-tòiseachaidh, tha blog Mhìcheal a 'tabhann lèirsinn luachmhor agus comhairle phractaigeach airson a bhith a' faighinn a 'chuid as fheàrr às na h-innealan bathar-bog riatanach sin.