فہرست کا خانہ
ایکسل VBA کوڈز کے ساتھ کام کرتے ہوئے، ہمیں کچھ بلٹ ان فنکشنز ملتے ہیں جو ایک پیچیدہ کام کو ایک چھوٹے ون لائن کوڈ میں تبدیل کرتے ہیں۔ InStr ایک ایسا فنکشن ہے جو ایکسل VBA میں دستیاب ہے جو کسی مخصوص سٹرنگ کو کسی اور دی گئی سٹرنگ کے اندر کسی مخصوص پوزیشن سے شروع کرتے ہوئے تلاش کرتا ہے۔ آج میں دکھاؤں گا کہ آپ کس طرح VBA میں InStr فنکشن کو کسی دوسری دی گئی اسٹرنگ میں تلاش کرنے کے لیے استعمال کر سکتے ہیں۔
پریکٹس ورک بک ڈاؤن لوڈ کریں
InStr Function.xlsm
کا تعارف VBA InStr فنکشن
- خلاصہ
دی گئی سٹرنگ کے اندر ایک مخصوص سٹرنگ کی تلاش، ایک دی گئی پوزیشن سے شروع ہوتی ہے۔ اگر کوئی مماثلت ملتی ہے تو دی گئی سٹرنگ میں وہ پوزیشن لوٹاتا ہے جہاں سے میچ شروع ہوا تھا۔
- نحو
InStr([start) ],string1,string2,[compare])
- دلائل
دلیل | ضرورت | تفصیل
| |||
---|---|---|---|---|---|
[start] | اختیاری | وہ پوزیشن جہاں سے یہ تلاش کرنا شروع کرے گا۔ پہلے سے طے شدہ 1 ہے | سٹرنگ2 | درکار ہے | وہ اسٹرنگ جسے وہ دی گئی اسٹرنگ میں تلاش کرتا ہے۔ |
[موازنہ] | اختیاری | {-1,0,1,2} کے درمیان ایک عددی قدر جو موازنہ کی قسم کی وضاحت کرتی ہے۔ دیپہلے سے طے شدہ ہے -1 (vbUseCompareOption)۔ اگر آپشن کمپیئر سٹیٹمنٹ کی وضاحت نہیں کی گئی ہے، تو بائنری کمپریژن کریں۔ |
نوٹ:
- حالانکہ [start] argument اور [compare] argument اختیاری ہیں، آپ کو [start] argument کی ضرورت ہے اگر آپ [compare] دلیل کی وضاحت کرتے ہیں۔ بصورت دیگر، یہ ایک خرابی پیدا کرے گا۔
- اگر [شروع] دلیل اور [موازنہ] دلیل میں سے ایک یا دونوں ہوں تو نول ، آپ کو ایک خرابی کا سامنا کرنا پڑے گا۔
- [موازنہ] دلیل میں چار متعین قدریں موازنہ کی چار مختلف قسمیں انجام دیتی ہیں۔ ان کا تذکرہ ذیل میں کیا گیا ہے:
VALUE | CONSTANT | ڈیسکریپشن
|
---|---|---|
-1 | vbUseCompareOption | میں بیان کردہ موازنہ انجام دیتا ہے۔ آپشن موازنہ بیان۔ |
0 | vbBinaryCompare | ایک بائنری موازنہ انجام دیتا ہے۔ |
1 | vbTextCompare | ایک متن کا موازنہ کرتا ہے۔ |
2 | vbDatabaseCompare | آپ کے ڈیٹا بیس کی بنیاد پر موازنہ انجام دیتا ہے۔ . |
- آپشن موازنہ اسٹیٹمنٹ ایک بیان ہے جو مین VBA کوڈ شروع ہونے سے پہلے فراہم کیا جاتا ہے۔ یہ بتاتا ہے کہ آیا کوڈ ضرورت پڑنے پر بائنری موازنہ یا ٹیکسٹ موازنہ تلاش کرے گا۔
آپشن کمپیئر ٹیکسٹ
-
- آسان الفاظ میں ، بائنری موازنہ کا مطلب ہے کیس حساسموازنہ۔
- آسان الفاظ میں ، متن کا موازنہ مطلب ہے کیس غیر حساس موازنہ۔
- واپسی قدر
- string1 میں وہ پوزیشن لوٹاتا ہے جہاں سے string2 شروع ہوا تھا۔
- کیس میں string2 نہیں ملتا ہے۔ string1 کے اندر start پوزیشن سے شروع ہوکر، 0 لوٹاتا ہے۔
- اگر string1 صفر کی لمبائی کا ہے، تو 0. لوٹاتا ہے۔ 9 string2 Null ہے، ایک خرابی لوٹاتا ہے۔
VBA InStr فنکشن کو استعمال کرنے کی 3 آسان مثالیں
میں اس حصے میں، ہم ایکسل میں VBA InStr فنکشن کو لاگو کرنے کی تین آسان مثالیں دیکھیں گے۔ آئیے VBA کوڈز میں InStr فنکشن کی پہلی مثال دیکھیں۔
1۔ یہ فیصلہ کرنا کہ آیا ایڈریس ای میل ایڈریس ہے یا نہیں VBA InStr فنکشن کا استعمال کرتے ہوئے
یہاں، ہم نے ایک ڈیٹا سیٹ لیا ہے جس میں صارفین کے کچھ رابطہ پتے ہیں۔ یہاں ہمارا مقصد اس بات کی نشاندہی کرنا ہوگا کہ پتہ ای میل ایڈریس ہیں یا نہیں۔
اب ہم شناخت کرنے کے لیے InStr فنکشن کا استعمال کرتے ہوئے ایک VBA کوڈ تیار کریں گے۔ چاہے یہ ای میل ایڈریس ہے یا نہیں۔ ایسا کرنے کے لیے، ذیل کے مراحل پر عمل کریں۔
مرحلہ:
- شروع میں، ڈیولپر ٹیب پر جائیں اور <کو منتخب کریں۔ 1>Visual Basic (یا دبائیں Alt+F11) کھولنے کے لیے VBA ونڈو۔
- پھر، VBA ونڈو پر، Insert > پر جائیں۔ ماڈیول ۔
- اس کے بعد ماڈیول پر درج ذیل کوڈ کو پیسٹ کریں:
4193
- مزید یہ کہ ہم نے ایک فنکشن بنایا ہے جسے فیصلہ کہتے ہیں۔ یہ فیصلہ کرتا ہے کہ پتہ ای میل ایڈریس ہے یا نہیں۔ آئیے ہمارے پاس موجود ڈیٹا سیٹ پر فنکشن کا اطلاق کریں۔
- سیل C5 پر، درج ذیل فارمولہ کو لکھیں اور پھر Fill Handle کا استعمال کرکے باقی سیلز کو آٹو فل کریں۔
=DECISION(B5)
- جیسا کہ ہم دیکھ سکتے ہیں، ہم نے ہر ایک پتے کی نشاندہی کی ہے کہ آیا یہ ای میل پتہ ہے یا نہیں۔
🎓 کوڈ کیسے کام کرتا ہے؟
- Function DECISION(string1 As String)
سب سے پہلے، یہ ایک فنکشن بناتا ہے جسے DECISION کہا جاتا ہے string1 کا نام سٹرنگ آرگیومینٹ۔
- Dim Position as Integer
یہ Position<نامی ایک انٹیجر متغیر کا اعلان کرتا ہے۔ 2>۔
- پوزیشن = InStr(1, string1, “@”, 0)
یہ کی قدر تفویض کرتا ہے۔ پوزیشن متغیر InStr فنکشن کے آؤٹ پٹ کے طور پر دلائل 1، string1، "@" اور 0 کے ساتھ۔ مختصراً، یہ اس پتے میں پوزیشن کو تفویض کرتا ہے جہاں ایک “@” ہے۔
- اگر پوزیشن = 0 تو فیصلہ = "ای میل نہیں"
یہ فیصلہ فنکشن کے آؤٹ پٹ کو بطور "ای میل نہیں" تفویض کرتا ہے، اگر پوزیشن متغیر ہے 0 ، اس کا مطلب ہے کہ ایڈریس میں کوئی “@” نہیں تھا۔
(یاد کریں اگر دی گئی اسٹرنگ میں کوئی سٹرنگ نہیں ملتی ہے تو، InStr فنکشن 0 واپس کرتا ہے۔
- Else DECISION = "Email"
یہ تفویض کرتا ہے۔ فیصلہ فنکشن کا آؤٹ پٹ بطور "ای میل" اگر پتہ میں "@" موجود ہو۔ اس طرح وہ پتے جہاں “@” ہیں انہیں ای میل کے طور پر درجہ بندی کیا گیا ہے، اور باقی کو “ای میل نہیں” کے طور پر درجہ بندی کیا گیا ہے۔
اسی طرح کی ریڈنگز
- ایکسل میں VBA UCASE فنکشن کا استعمال کیسے کریں (4 مثالیں)
- ایکسل VBA میں MsgBox فنکشن کا استعمال کریں (ایک مکمل رہنما خطوط)
- ایکسل میں VBA SPLIT فنکشن کا استعمال کیسے کریں (5 مثالیں)
- ایکسل میں VBA میں LCase فنکشن کا استعمال کریں (کے ساتھ 4 مثالیں)
- ایکسل VBA میں فکس فنکشن کا استعمال کیسے کریں (4 مثالیں)
2. VBA InStr فنکشن کا استعمال کچھ ای میل ایڈریسز کی ایکسٹینشن نکالنا
یہاں، ہمارے پاس کچھ صارفین کے کچھ ای میل ایڈریسز کی فہرست ہے۔ اس بار ہم ای میل ایڈریس کی ایکسٹینشن نکالیں گے جیسے کہ ان کے پاس gmail.com ہے یا yahoo.com ۔
ایسا کرنے کے لیے، نیچے دیے گئے مراحل پر عمل کریں۔
مرحلہ:
- پچھلے طریقہ کی طرح شروع کرنے کے لیے، ایک نیا VBA<2 کھولیں۔> ماڈیول کریں اور درج ذیل کوڈ کو ونڈو میں چسپاں کریں۔
1924
- اس کے علاوہ، ہم نے ایک فنکشن بنایا ہے جسے ایکسٹینشن ۔ یہ کسی بھی ای میل ایڈریس کی توسیع کو نکالتا ہے۔
- مزید برآں، آئیے اس فنکشن کو ہمارے پاس موجود ڈیٹا سیٹ پر لاگو کریں۔ سب سے پہلے، سیل C5 پر یہ فارمولہ درج کریں اور پھر Fill ہینڈل پر ڈبل کلک کریں۔
=EXTENSION(B5)
- آخر میں، ہم دیکھ سکتے ہیں کہ ہم نے کامیابی کے ساتھ تمام ای میلز کی ایکسٹینشن نکال لی ہے۔
🎓 کوڈ کیسے کام کرتا ہے؟
- فنکشن ایکسٹینشن (اسٹرنگ کے طور پر ای میل)
یہ ایک نیا فنکشن بناتا ہے جسے EXTENSION کہا جاتا ہے، جس میں ایک ای میل کے نام سے اسٹرنگ آرگیومینٹ۔
- مکمل پوزیشن بطور انٹیجر
یہ حصہ پوزیشن نامی انٹیجر متغیر کا اعلان کرتا ہے۔ .
- پوزیشن = InStr(1, Email, “@”, 0)
یہ <1 کی قدر تفویض کرتا ہے۔ 1>1، ای میل، "@" اور 0 کے ساتھ InStr فنکشن کے آؤٹ پٹ کے طور پر>Position متغیر۔ مختصراً، یہ ای میل میں پوزیشن تفویض کرتا ہے جہاں ایک “@” ہے۔
- EXTENSION = Right(Email, (Len (ای میل) – پوزیشن))
یہ حصہ ایکسٹینشن فنکشن کے آؤٹ پٹ کو علامت “@” کے بعد حروف کے طور پر تفویض کرتا ہے۔ یہ ای میل کی مطلوبہ توسیع ہے۔
3۔ کسی نام سے پہلا یا آخری نام نکالنا VBA InStr فنکشن کا استعمال کرتے ہوئے
آخر میں، ہم ایک منفرد کام انجام دیں گے۔ اس بار ہمارے پاس کچھ ملازمین کے نام ہیں۔ایک کمپنی اور ہم ملازمین کا پہلا نام یا آخری نام نکالنے کے لیے ایک فنکشن بنانے کی کوشش کریں گے۔
ایسا کرنے کے لیے نیچے دیے گئے مراحل پر عمل کریں۔
مرحلہ:
- سب سے پہلے، طریقہ 1 کی طرح، نیچے کوڈ کو VBA ونڈو میں ایک نئے ماڈیول میں چسپاں کریں۔
4412
- یہاں، ہم نے SHORTNAME نامی ایک فنکشن بنایا ہے جو کسی نام سے پہلا نام یا آخری نام نکالتا ہے۔ آئیے اس فارمولے کو اپنے ڈیٹا سیٹ پر لاگو کریں۔
- سب سے پہلے، پہلا نام نکالنے کے لیے، سیل C5 میں نیچے دیا گیا فارمولا لکھیں۔
=SHORTNAME(B5,-1)
- آخر میں، آخری نام نکالنے کے لیے، ہم درج ذیل فارمولے کو D5 میں لکھتے ہیں:
=SHORTNAME(B5,1)
- اس کے بعد، اگر ہم باقی سیلز کو Fill Handler<2 کے ساتھ آٹو فل کریں>، ہم اپنا مطلوبہ نتیجہ دیکھیں گے۔
🎓 کوڈ کیسے کام کرتا ہے؟
> 8> نامکے نام سے ایک اسٹرنگ آرگیومنٹ اور First_or_Lastکے نام سے ایک عدد دلیل کے ساتھ۔- Dim Break as Integer <11
- Break = InStr(1, Name, ” “, 0) <10
- اگر First_or_Last = -1 تو SHORTNAME = Left(Name, Break – 1)
یہ حصہ بریک کے نام سے ایک نئے انٹیجر متغیر کا اعلان کرتا ہے۔
یہ بریک متغیر کی قدر کو آرگیومینٹس کے ساتھ InStr فنکشن کے آؤٹ پٹ کے طور پر تفویض کرتا ہے۔ 1، نام، “” اور 0 ۔ مختصراً، یہ نام میں پوزیشن تفویض کرتا ہے جہاں ایک اسپیس (“”) ہے۔
یہ لائن SHORTNAME فنکشن کے آؤٹ پٹ کو اسپیس سے پہلے حروف کے طور پر تفویض کرتی ہے، اگر First_or_Last دلیل -1 ہے۔ یہ پہلا نام ہے SHORTNAME اسپیس کے بعد حروف کے طور پر کام کرتا ہے، اگر First_or_Last دلیل 1 ہے۔ یہ آخری نام ہے۔
نتیجہ
اس طرح، آپ InStr فنکشن کے ساتھ VBA کوڈ لکھ سکتے ہیں جو کسی دوسرے دیے گئے سٹرنگ کے اندر ایک مخصوص سٹرنگ کی پوزیشن کا پتہ لگاتا ہے۔ string، اور پھر آپ مختلف قسم کے استعمال کے لیے اپنے فنکشن بنا سکتے ہیں۔ مزید برآں، اگر آپ کے کوئی سوالات ہیں تو بلا جھجھک ہم سے پوچھیں۔