مواد جي جدول
ٽيوٽوريل ڏيکاري ٿو ته ڪيئن نقل ڪيل لفظن يا ٽيڪسٽ اسٽرنگ کي سيل اندر VBA استعمال ڪندي. پهرين واقعن سان يا ان کان سواءِ، هڪ ڪالمن ۾ يا گھڻن ڪالمن ۾، لڳاتار نقل ٿيل سيلز، ۽ پوريون قطارون هڪجهڙي قدرن جي بنياد تي هڪ اهم ڪالمن ۾. پر، هميشه وانگر، اتي هڪ "پر" آهي. مشروط فارميٽنگ جا ضابطا سيل جي سطح تي ڪم ڪن ٿا جڏهن ته توهان سڄي سيلن جي بجاءِ نقل واري متن کي اجاگر ڪرڻ چاهيو ٿا. اهو صرف macros سان ڪري سگهجي ٿو. جيتوڻيڪ توهان وٽ VBA سان ڪو به تجربو نه آهي، مهرباني ڪري هن صفحي کي بند ڪرڻ لاء جلدي نه ڪريو. هتي، توهان کي استعمال ڪرڻ لاءِ تيار ڪوڊ جا مثال ملندا ۽ تفصيلي هدايتون ته انهن کي ڪيئن استعمال ڪجي توهان جي ورڪ شيٽ ۾.
ٽيڪسٽ ڪيس کي نظر انداز ڪندي سيل ۾ نقلي لفظن کي نمايان ڪريو
هي مثال ڏيکاري ٿو ته نقل ڪيل لفظن يا ٽيڪسٽ اسٽرنگ کي سيل اندر ڳاڙهي فونٽ رنگ ۾ ڪيئن شيڊ ڪجي جيئن هيٺ ڏنل تصوير ۾ ڏيکاريل آهي. مھرباني ڪري نوٽ ڪريو ته ننڍا ۽ وڏا اکر ساڳيا اکر آھن. مثال طور، نارنگي ، ORANGE ۽ نارنگي کي ساڳيو لفظ سمجھيو وڃي ٿو.
The macro جو ڪوڊ هن ريت آهي:
Public Sub HighlightDupesCaseInsensitive() Dim Cell As Reng Dim Delimiter As String Delimiter = InputBox("ڊيليميٽر داخل ڪريو جيڪو سيل ۾ قدرن کي الڳ ڪري ٿو" , "delimiter" , " , " ) هر سيل ۾Application.Selection Call HighlightDupeWordsInCell(Cell, Delimiter, False) اڳيون آخر Sub Sub HighlightDupeWordsInCell(Cell As Range, Optional Delimiter As String = "" , Optional CaseSensitive As Boolean = True ) Dim text as String As (لفظ Dim As String) String Dim wordIndex, matchCount, positionInText Integer جيڪڏھن CaseSensitive پوءِ لفظ = Split(Cell.Value، Delimiter) Else words = Split(LCase(Cell.Value)، Delimiter) End If For wordIndex = LBound (لفظن) ڏانھن UBound (لفظ) - 1 لفظ = لفظن(wordIndex) matchCount = 0 for nextWordIndex = wordIndex + 1 کان UBound (لفظن) جيڪڏھن لفظ = لفظ (NextWordIndex) پوءِ matchCount = matchCount + 1 End جيڪڏھن Next nextWordIndex جيڪڏھن matchCount > 0 پوء ٽيڪسٽ = "" Index = LBound (لفظن) لاءِ UBound (لفظن) ٽيڪسٽ = ٽيڪسٽ ۽ amp; لفظن (انڊيڪس) جيڪڏھن (لفظن (انڊيڪس) = لفظ) پوءِ سيل. اکر (لين (ٽيڪسٽ) - لين (لفظ) + 1، لين (لفظ)). Font.Color = vbRed End If text = text & Delimiter Next End If Next wordIndex End Subهڪ نمايان نقل واري متن کي سيل ڪيس-حساس ۾
اڪثر حالتن ۾، اسان ايڪسل ۾ ٽيڪسٽ داخلائن سان ڪم ڪرڻ وقت خط جي صورت کي نظر انداز ڪندا آهيون. جڏهن ته، ڪجهه حالتن هيٺ، ٽيڪسٽ ڪيس اهم آهي. مثال طور، جيڪڏهن توهان IDs، پاسورڊ، يا انهي قسم جي ٻين رڪارڊن سان ڪم ڪري رهيا آهيو، تارن جهڙوڪ 1-AA ، 1-aa ۽ 1-AA نقل نه آھن ۽ نمايان نه ٿيڻ گھرجي:
9>
ھن صورت ۾،ڪوڊ جو ھيٺيون ورجن استعمال ڪريو:
Public Sub HighlightDupesCaseSensitive() Dim Cell As Range Dim Delimiter As String Delimiter = InputBox( "انٽرو ڊيليميٽر جيڪو سيل ۾ قدرن کي الڳ ڪري ٿو" , "Delimiter" , ", " ) ھر ھڪ لاءِ Cell in Application.Selection Call HighlightDupeWordsInCell(Cell, Delimiter, True ) اگلا آخر Sub Sub HighlightDupeWordsInCell(سيل جي حد تائين، اختياري ڊيليميٽر جيئن اسٽرنگ = "" , اختياري ڪيس حساس جيئن Boolean = True) Dim text Dim text as String (String As) لفظ As String Dim wordIndex، matchCount، positionInText Integer طور جيڪڏھن CaseSensitive پوءِ لفظ = Split(Cell.Value، Delimiter) Else words = Split(LCase(Cell.Value)، Delimiter) End جيڪڏھن لاءِ wordIndex = LBound (لفظ) ڏانھن UBound ( لفظ) - 1 لفظ = لفظ(wordIndex) matchCount = 0 for nextWordIndex = wordIndex + 1 UBound (لفظن) جيڪڏهن لفظ = لفظ (nextWordIndex) پوءِ matchCount = matchCount + 1 End جيڪڏھن اڳيون nextWordIndex جيڪڏھن matchCount > 0 پوء ٽيڪسٽ = "" Index = LBound (لفظن) لاءِ UBound (لفظن) ٽيڪسٽ = ٽيڪسٽ ۽ amp; لفظن (انڊيڪس) جيڪڏھن (لفظن (انڊيڪس) = لفظ) پوءِ سيل. اکر (لين (ٽيڪسٽ) - لين (لفظ) + 1، لين (لفظ)). Font.Color = vbRed End If text = text & Delimiter Next End If Next wordIndex End SubExcel ۾ نقل ڪيل لفظن کي نمايان ڪرڻ لاءِ ميڪرو ڪيئن استعمال ڪجي
جيڪڏهن توهان VBA استعمال ڪرڻ جي شروعات ڪندڙ آهيو، ته هيٺ ڏنل قدم بہ قدم هدايتون توهان کي آرام سان هلنديون . تجربا استعمال ڪندڙ شايدبس ڊائون لوڊ لنڪ چونڊيو ۽ باقي ڇڏي ڏيو :)
ڪوڊ کي پنھنجي ورڪ بڪ ۾ شامل ڪريو
توھان پنھنجي Excel ورڪ بڪ ۾ ميڪرو ڪوڊ داخل ڪرڻ سان شروع ڪريو. ھتي ھي طريقو آھي:
- ورڪ بڪ کوليو جتي توھان ڊوپز کي نمايان ڪرڻ چاھيو ٿا.
- دٻايو Alt + F11 Visual Basic Editor کولڻ لاءِ.
- کاٻي پاسي، صحيح ڪلڪ ڪريو This Workbook ۽ چونڊيو Insert > Module context menu مان.
- ڪوڊ کي ڪوڊ ونڊو ۾ پيسٽ ڪريو. 13 نموني ورڪ بڪ ۾ هيٺيان ميڪرو شامل آهن:
- HighlightDupesCaseInsensitive - رنگن جي نقل سيل اندر ليٽر ڪيس کي نظر انداز ڪندي.
- HighlightDupesCaseSensitive - نمايان ليٽر ڪيس تي غور ڪندي سيل ۾ ڊوپس.
- توهان جي ورڪ شيٽ ۾، سيل چونڊيو جتي توهان نقل ٿيل متن کي اجاگر ڪرڻ چاهيو ٿا. ھي ھڪڙي رينج يا گھڻن غير ڀرپاسي واري حد ٿي سگھي ٿي.
- Alt + F8 کي دٻايو.
- سڀني جو ميڪرو چونڊيو ۽ ڪلڪ ڪريو چلايو .
- ميڪرو توھان کان پڇندو ته ڊيليميٽر بيان ڪريوجيڪي چونڊيل سيلن ۾ قدرن کي الڳ ڪري ٿو. اڳواٽ ڊيليميٽر (اسان جي صورت ۾ ڪاما ۽ هڪ جاءِ) ان پٽ باڪس ۾ پاڻمرادو ظاهر ٿيندو. توھان جي ضرورتن تي مدار رکندي، توھان ڊفالٽ ڊيليميٽر کي ڇڏي سگھو ٿا يا ٻيو ٽائيپ ڪري سگھو ٿا، ۽ پوءِ ڪلڪ ڪريو ٺيڪ.
وڌيڪ معلومات لاءِ، مهرباني ڪري ڏسو ته ڪيئن داخل ڪجي VBA ڪوڊ Excel ۾.
ميڪرو کي هلايو
ڪوڊ سان توهان جي پنهنجي ورڪ بڪ ۾ شامل ڪيو ويو يا اسان جي نموني فائل ڊائون لوڊ ۽ کوليو، ميڪرو کي هن طريقي سان هلايو:
ھڪ لمحي کان پوءِ، چونڊيل ۾ سڀ نقلي اسٽرنگ سيلز کي ڳاڙهي رنگ ۾ ڇانو ڪيو ويندو (يا جيڪو فونٽ رنگ توهان جي ڪوڊ ۾ مقرر ڪيو ويو آهي).
ٽپ. هڪ سيل جي اندر جلدي ڊپليڪيٽس کي هٽائڻ لاءِ، توهان استعمال ڪري سگهو ٿا ڊپليڪيٽ سبسٽرنگز کي هٽايو، جيڪو اسان جي الٽيميٽ سوٽ ۾ شامل ڪيترن ئي وقتن جي بچت وارو اوزار آهي.
پنهنجي ضرورتن لاءِ ڪوڊ کي ڪيئن ترتيب ڏيو
انهن استعمال جي نوٽس ۽ VBA جي تمام بنيادي ڄاڻ سان (يا صرف هيٺ ڏنل هدايتن تي عمل ڪندي)، توهان آساني سان ڪوڊز کي پنهنجي ضرورتن مطابق درست ڪري سگھو ٿا.
ساڳئي ماڊل تي رکو
جيئن توهان نوٽيس ڪري سگھو ٿا، ٻئي ميڪرو ( HighlightDupesCaseSensitive ۽ HighlightDupesCaseInsensitive ) HighlightDupeWordsInCell فڪشن کي ڪال ڪريو. مٿين ٻن ميڪرو جي وچ ۾ فرق صرف ٽئين پيراميٽر (CaseSensitive) ۾ آهي جيڪو ڄاڻايل فنڪشن ڏانهن منتقل ڪيو ويو آهي.
ڪيس-حساس ڳولها لاءِ، ان کي سيٽ ڪيو ويو آهي TRUE:
Call HighlightDupeWordsInCell(Cell, Delimiter, True)
ڪيس-غير حساس ڳولا لاءِ، ان کي FALSE تي سيٽ ڪيو ويو آهي:
Call HighlightDupeWordsInCell(Cell, Delimiter, False)
ميڪرو ڪم ڪرڻ لاءِ، HighlightDupeWordsInCell فنڪشن جو ڪوڊ ان تي رکڻو پوندو ساڳي ماڊل جي طور تيmacros.
Delimiter
جڏهن هلندا، ميڪرو توهان کان پڇندو ته ڊيليميٽر بيان ڪريو جيڪو چونڊيل سيلن ۾ لفظن/اسٽرنگ کي الڳ ڪري ٿو. ڊفالٽ ڊيليميٽر ڪاما ۽ هڪ اسپيس (") آهي ۽ اهو انپٽ باڪس ۾ اڳي ئي مقرر ٿيل آهي:
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 هن جي مدد ڪيل رنگن جي ثابتين جي فهرست هتي ملي سگهي ٿي.
اهو آهي ايڪسل سيلز ۾ نقل ڪيل لفظن کي ڪيئن اجاگر ڪجي. مان توهان جي پڙهڻ لاءِ مهرباني ڪريان ٿو ۽ اميد اٿم ته توهان کي ايندڙ هفتي اسان جي بلاگ تي ڏسندا!
دستياب ڊائون لوڊ
ڪوڊ مثالن کي اجاگر ڪرڻ لاءِ سيل ۾ نقل (.xlsm فائيل)
Ultimate سوٽ 14-ڏينهن مڪمل فنڪشنل ورزن (.exe فائل)