Clàr-innse
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 FoThoir 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 FoMar 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:
- Fosgail an leabhar-obrach far a bheil thu airson dupes a shoilleireachadh.
- Brùth Alt + F11 gus an deasaiche Visual Basic fhosgladh.
- Air a’ phana chlì, deas-bhriog An Leabhar-obrach Seo agus tagh Cuir a-steach > Modal on chlàr-taice cho-theacsa.
- Cuir a-steach an còd ann an uinneag a’ Chòd.
- 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:
- 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.
- Brùth Alt + F8 .
- Tagh am macro ùidh agus cliog Ruith .
- 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)
Faic cuideachd: Inneal Ruigsinneachd Luath ann an Excel: mar a nì thu gnàthachadh, gluasad agus ath-shuidheachadhAirson 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)