VBA میں ایکسل سیل بمقابلہ رینج افعال کو سمجھنا۔

VBA میں ایکسل سیل بمقابلہ رینج افعال کو سمجھنا۔

ایکسل طاقتور ہے۔ اگر آپ اسے بہت استعمال کرتے ہیں تو ، آپ کو پہلے ہی فارمولوں یا آٹو فارمیٹنگ کا استعمال کرتے ہوئے بہت ساری چالیں معلوم ہوں گی ، لیکن اس کا استعمال سیل اور رینج VBA میں کام کرتا ہے ، آپ اپنے ایکسل تجزیات کو پوری نئی سطح تک بڑھا سکتے ہیں۔





VBA میں سیلز اور رینج افعال کو استعمال کرنے میں مسئلہ یہ ہے کہ اعلی درجے پر ، زیادہ تر لوگوں کو یہ سمجھنے میں دشواری ہوتی ہے کہ یہ افعال اصل میں کیسے کام کرتے ہیں۔ ان کا استعمال بہت الجھا سکتا ہے۔ یہ ہے کہ آپ ان کو ان طریقوں سے کیسے استعمال کر سکتے ہیں جن کا شاید آپ نے کبھی تصور بھی نہیں کیا ہو گا۔





سیل فنکشن۔

سیلز اور رینج افعال آپ کو بتاتے ہیں۔ آپ کا VBA اسکرپٹ۔ اپنی ورک شیٹ پر جہاں آپ حاصل کرنا چاہتے ہیں ، یا ڈیٹا رکھنا چاہتے ہیں۔ دونوں خلیوں کے درمیان بنیادی فرق وہی ہے جس کا وہ حوالہ دیتے ہیں۔





سیل عام طور پر ایک وقت میں ایک سیل کا حوالہ دیتے ہیں ، جبکہ رینج ایک بار میں خلیوں کے ایک گروپ کا حوالہ دیتا ہے۔ اس فنکشن کا فارمیٹ یہ ہے۔ سیل (قطار ، کالم) .

یہ پوری شیٹ میں ہر ایک سیل کا حوالہ دیتا ہے۔ یہ ایک مثال ہے جہاں سیل فنکشن کسی ایک سیل کا حوالہ نہیں دیتا:



Worksheets('Sheet1').Cells

یہ اوپر کی قطار کے بائیں سے تیسرے سیل کا حوالہ دیتا ہے۔ سیل C1:

Worksheets('Sheet1').Cells(3)

مندرجہ ذیل کوڈ سیل D15 کا حوالہ دیتا ہے:





Worksheets('Sheet1').Cells(15,4)

اگر آپ چاہیں تو ، آپ سیل D15 کو 'سیل (15 ،' D ')' کے ساتھ بھی حوالہ دے سکتے ہیں --- آپ کو کالم لیٹر استعمال کرنے کی اجازت ہے۔

کالم اور سیل کے لیے نمبر کا استعمال کرتے ہوئے سیل کا حوالہ دینے کے قابل ہونے میں بہت زیادہ لچک ہے ، خاص طور پر سکرپٹ کے ساتھ کے ذریعے لوپ خلیوں کی ایک بڑی تعداد (اور ان پر حساب لگائیں) بہت جلد۔ ہم ذیل میں مزید تفصیل سے اس پر پہنچیں گے۔





رینج فنکشن۔

بہت سے طریقوں سے ، رینج فنکشن سیلز کے استعمال سے کہیں زیادہ طاقتور ہے ، کیونکہ یہ آپ کو ایک ہی سیل ، یا سیلز کی ایک مخصوص رینج کا حوالہ دیتا ہے۔ آپ رینج فنکشن کے ذریعے لوپ نہیں کرنا چاہتے ہیں ، کیونکہ سیلز کے حوالے نمبر نہیں ہیں (جب تک کہ آپ سیلز فنکشن کو اس کے اندر سرایت نہ کریں)۔

اس فنکشن کا فارمیٹ یہ ہے۔ رینج (سیل #1 ، سیل #2) . ہر سیل کو لیٹر نمبر کے ذریعے نامزد کیا جا سکتا ہے۔

آئیے چند مثالیں دیکھتے ہیں۔

آن لائن فون پر فلمیں مفت دیکھیں۔

یہاں ، رینج فنکشن سیل A5 کا حوالہ دے رہا ہے:

Worksheets('Sheet1').Range('A5')

یہاں ، رینج فنکشن A1 سے E20 کے درمیان تمام خلیوں کا حوالہ دے رہا ہے۔

Worksheets('Sheet1').Range('A1:E20')

جیسا کہ اوپر ذکر کیا گیا ہے ، آپ کو نمبر لیٹر سیل اسائنمنٹس استعمال کرنے کی ضرورت نہیں ہے۔ آپ دراصل شیٹ پر موجود رینج کی شناخت کے لیے رینج فنکشن کے اندر دو سیل فنکشن استعمال کرسکتے ہیں ، جیسے:


With Worksheets('Sheet1')
.Range(.Cells(1, 1), _
.Cells(20, 5))
End With

مندرجہ بالا کوڈ اسی رینج کا حوالہ دیتا ہے جیسا کہ رینج ('A1: E20') فنکشن کرتا ہے۔ اس کے استعمال میں اہمیت یہ ہے کہ یہ آپ کو کوڈ لکھنے کی اجازت دیتا ہے جو لوپس کا استعمال کرتے ہوئے حدود کے ساتھ متحرک طور پر کام کرتا ہے۔

اب جب کہ آپ سیلز اور رینج افعال کو فارمیٹ کرنے کا طریقہ سمجھ چکے ہیں ، آئیے اس میں غوطہ لگائیں کہ آپ اپنے VBA کوڈ میں ان افعال کا تخلیقی استعمال کیسے کر سکتے ہیں۔

سیل فنکشن کے ساتھ ڈیٹا پر کارروائی

سیلز فنکشن سب سے زیادہ مفید ہوتا ہے جب آپ کے پاس ایک پیچیدہ فارمولا ہوتا ہے جسے آپ خلیوں کی ایک سے زیادہ حدوں میں انجام دینا چاہتے ہیں۔ یہ حدود متعدد شیٹس میں بھی موجود ہوسکتی ہیں۔

آئیے ایک سادہ سی مثال لیتے ہیں۔ ہم کہتے ہیں کہ آپ 11 افراد کی سیلز ٹیم کا انتظام کرتے ہیں ، اور ہر ماہ آپ ان کی کارکردگی دیکھنا چاہتے ہیں۔

آپ کے پاس ہو سکتا ہے۔ شیٹ 1۔ جو ان کی فروخت کی گنتی اور ان کی فروخت کا حجم ٹریک کرتا ہے۔

پر شیٹ 2۔ یہ وہ جگہ ہے جہاں آپ اپنی کمپنی کے کلائنٹس سے پچھلے 30 دنوں کے لیے ان کی آراء کی درجہ بندی کو ٹریک کرتے ہیں۔

اگر آپ دو شیٹس کی اقدار کا استعمال کرتے ہوئے پہلی شیٹ پر بونس کا حساب لگانا چاہتے ہیں تو ایسا کرنے کے کئی طریقے ہیں۔ آپ پہلے سیل میں ایک فارمولا لکھ سکتے ہیں جو دو شیٹوں کے ڈیٹا کا استعمال کرتے ہوئے حساب کتاب کرتا ہے اور اسے نیچے گھسیٹتا ہے۔ یہ کام کرے گا۔

اس کا ایک متبادل وی بی اے سکرپٹ بنانا ہے جسے آپ یا تو جب بھی شیٹ کھولتے ہیں ، یا شیٹ پر کمانڈ بٹن سے ٹرگر کرتے ہیں تاکہ آپ حساب لگاتے وقت کنٹرول کر سکیں۔ آپ کسی بھی بیرونی فائل سے تمام سیلز ڈیٹا نکالنے کے لیے VBA سکرپٹ استعمال کر سکتے ہیں۔

تو کیوں نہ اس وقت ایک ہی سکرپٹ میں بونس کالم کے حساب کو متحرک کریں؟

سیلز فنکشن ان ایکشن۔

اگر آپ نے پہلے کبھی ایکسل میں VBA نہیں لکھا ، آپ کو ڈویلپر مینو آئٹم کو فعال کرنے کی ضرورت ہوگی۔ ایسا کرنے کے لیے ، پر جائیں۔ فائل۔ > اختیارات . پر کلک کریں ربن کو حسب ضرورت بنائیں۔ . آخر میں ، بائیں پین سے ڈویلپر کا انتخاب کریں ، شامل کریں اسے دائیں پین میں ، اور یقینی بنائیں کہ چیک باکس منتخب ہے۔

اب ، جب آپ کلک کریں۔ ٹھیک ہے اور مرکزی شیٹ پر واپس جائیں ، آپ کو ڈویلپر مینو آپشن نظر آئے گا۔

آپ استعمال کر سکتے ہیں داخل کریں کمانڈ بٹن داخل کرنے کے لیے مینو ، یا صرف کلک کریں۔ کوڈ دیکھیں۔ کوڈنگ شروع کرنے کے لیے۔

اس مثال میں ہم سکرپٹ کو ہر بار ورک بک کھولنے پر چلائیں گے۔ ایسا کرنے کے لیے ، صرف کلک کریں۔ کوڈ دیکھیں۔ ڈویلپر مینو سے ، اور مندرجہ ذیل نئے فنکشن کوڈ ونڈو میں پیسٹ کریں۔

Private Sub Workbook_Open()
End Sub

آپ کا کوڈ ونڈو کچھ اس طرح نظر آئے گا۔

اب آپ حساب سنبھالنے کے لیے کوڈ لکھنے کے لیے تیار ہیں۔ ایک لوپ کا استعمال کرتے ہوئے ، آپ تمام 11 ملازمین کے ذریعے قدم اٹھا سکتے ہیں ، اور سیل فنکشن کے ساتھ حساب کے لیے درکار تین متغیرات کو کھینچ سکتے ہیں۔

یاد رکھیں کہ سیل کے فنکشن میں قطار اور کالم پیرامیٹرز کے طور پر ہر انفرادی سیل کی شناخت کرتے ہیں۔ ہم 'x' قطار بنائیں گے ، ہر کالم کے ڈیٹا کی درخواست کرنے کے لیے ایک نمبر استعمال کریں۔ قطاروں کی تعداد ملازمین کی تعداد ہے ، لہذا یہ 1 سے 11 تک ہوگی۔ کالم کی شناخت سیلز کاؤنٹ کے لیے 2 ، سیلز والیوم کے لیے 3 ، اور فیڈ بیک سکور کے لیے شیٹ 2 سے 2 ہوگی۔

حتمی حساب کتاب کل بونس سکور کا 100 فیصد تک شامل کرنے کے لیے درج ذیل فیصد استعمال کرتا ہے۔ یہ ایک مثالی فروخت کی گنتی 50 ، فروخت کا حجم $ 50،000 ، اور فیڈ بیک سکور 10 پر مبنی ہے۔

  • (سیلز کاؤنٹ/50) x 0.4۔
  • (سیلز والیوم/50،000) x 0.5۔
  • (فیڈ بیک اسکور/10) x 0.1۔

یہ سادہ طریقہ کار سیلز ملازمین کو ایک وزنی بونس دیتا ہے۔ 50 کی گنتی ، $ 50،000 کا حجم ، اور 10 کے اسکور کے لیے-انہیں مہینے کا پورا زیادہ سے زیادہ بونس ملتا ہے۔ تاہم کسی بھی عنصر پر کامل کے تحت کوئی بھی چیز بونس کو کم کرتی ہے۔ مثالی سے بہتر کوئی بھی چیز بونس کو بڑھاتی ہے۔

اب آئیے دیکھتے ہیں کہ اس تمام منطق کو ایک بہت ہی سادہ ، مختصر VBA اسکرپٹ میں کیسے نکالا جا سکتا ہے۔

Private Sub Workbook_Open()
For x = 2 To 12
Worksheets('Sheet1').Cells(x, 4) = (Worksheets('Sheet1').Cells(x, 2).Value / 50) * 0.4 _
+ (Worksheets('Sheet1').Cells(x, 3).Value / 50000) * 0.5 _
+ (Worksheets('Sheet2').Cells(x, 2).Value / 10) * 0.1 _
Next x
End Sub

اس سکرپٹ کا آؤٹ پٹ ایسا ہی ہوگا۔

زوم میں ہاتھ اٹھانے کا طریقہ

اگر آپ چاہتے تھے کہ بونس کالم فی صد کے بجائے اصل ڈالر بونس دکھائے تو آپ اسے زیادہ سے زیادہ بونس کی رقم سے ضرب دے سکتے ہیں۔ ابھی تک بہتر ہے ، اس رقم کو سیل میں کسی اور شیٹ پر رکھیں ، اور اپنے کوڈ میں اس کا حوالہ دیں۔ اس سے آپ کے کوڈ میں ترمیم کیے بغیر قیمت کو بعد میں تبدیل کرنا آسان ہوجائے گا۔

سیلز فنکشن کی خوبصورتی یہ ہے کہ آپ ڈیٹا حاصل کرنے کے لیے کچھ خوبصورت تخلیقی منطق بنا سکتے ہیں۔ بہت سے خلیات بہت سی مختلف چادروں میں ، اور کچھ انجام دیں۔ بہت پیچیدہ حساب ان کے ساتھ.

آپ سیلز فنکشن کا استعمال کرتے ہوئے سیلز پر ہر طرح کے کام انجام دے سکتے ہیں --- سیلز کو صاف کرنا ، فونٹ فارمیٹنگ تبدیل کرنا اور بہت کچھ۔

آپ جو کچھ کر سکتے ہیں اسے دریافت کرنے کے لیے ، چیک کریں۔ مائیکروسافٹ ایم ایس ڈی این پیج۔ سیل آبجیکٹ کے لیے۔

رینج فنکشن کے ساتھ سیلز کو فارمیٹ کرنا۔

ایک وقت میں بہت سے خلیوں کے ذریعے لوپنگ کے لیے ، سیلز کا کام کامل ہے۔ لیکن اگر آپ خلیوں کی پوری رینج پر ایک ساتھ کچھ لگانا چاہتے ہیں تو رینج فنکشن کہیں زیادہ موثر ہے۔

اس کے لیے ایک استعمال کا معاملہ اسکرپٹ کا استعمال کرتے ہوئے خلیوں کی ایک رینج کو فارمیٹ کرنا ہوسکتا ہے ، اگر کچھ شرائط پوری ہو جائیں۔

مثال کے طور پر ، یہ کہتے ہیں کہ اگر تمام سیلز ملازمین کے تمام سیلز کا حجم مجموعی طور پر $ 400،000 سے تجاوز کر جائے تو ، آپ بونس کالم کے تمام سیلز کو سبز رنگ میں اجاگر کرنا چاہتے ہیں تاکہ اس بات کی نشاندہی کی جا سکے کہ ٹیم نے ایک اضافی ٹیم بونس حاصل کیا ہے۔

آئیے ایک نظر ڈالیں کہ آپ اس کے ساتھ کیسے کر سکتے ہیں۔ IF کا بیان .

Private Sub Workbook_Open()
If Worksheets('Sheet1').Cells(13, 3).Value > 400000 Then
ActiveSheet.Range('D2:D12').Interior.ColorIndex = 4
End If
End Sub

جب یہ چلتا ہے ، اگر سیل ٹیم کے ہدف سے زیادہ ہے تو ، رینج کے تمام خلیے سبز رنگ سے بھر جائیں گے۔

یہ رینج فنکشن کا استعمال کرتے ہوئے خلیوں کے گروپوں پر کیے جانے والے بہت سے اعمال کی صرف ایک سادہ مثال ہے۔ دوسری چیزیں جو آپ کر سکتے ہیں ان میں شامل ہیں:

  • گروپ کے ارد گرد ایک خاکہ لگائیں۔
  • خلیوں کی ایک رینج کے اندر متن کی ہجے چیک کریں۔
  • صاف کریں ، کاپی کریں ، یا سیل کاٹ دیں۔
  • 'تلاش کریں' طریقہ کے ساتھ ایک رینج کے ذریعے تلاش کریں۔
  • بہت زیادہ

کو ضرور پڑھیں۔ مائیکروسافٹ ایم ایس ڈی این پیج۔ رینج آبجیکٹ کے تمام امکانات کو دیکھنے کے لیے۔

ایکسل کو اگلے درجے پر لے جائیں۔

اب جب آپ سیلز اور رینج افعال کے مابین فرق کو سمجھ چکے ہیں ، اب وقت آگیا ہے کہ آپ اپنی وی بی اے اسکرپٹنگ کو اگلے درجے پر لے جائیں۔ ایکسل میں گنتی اور افعال کو شامل کرنے کے بارے میں ڈان کا مضمون آپ کو اور بھی اعلی درجے کی سکرپٹ بنانے کی اجازت دے گا جو آپ کے تمام ڈیٹا سیٹوں میں اقدار کو بہت جلدی جمع کر سکتی ہے۔

اور اگر آپ ابھی ایکسل میں VBA کے ساتھ شروع کر رہے ہیں تو ، مت بھولنا کہ ہمارے پاس ایک شاندار ہے۔ ایکسل VBA کے لیے تعارفی گائیڈ آپ کے لیے بھی.

بانٹیں بانٹیں ٹویٹ ای میل۔ کینن بمقابلہ نیکن: کون سا کیمرا برانڈ بہتر ہے؟

کینن اور نیکن کیمرہ انڈسٹری کے دو بڑے نام ہیں۔ لیکن کون سا برانڈ کیمروں اور عینکوں کی بہتر لائن اپ پیش کرتا ہے؟

اگلا پڑھیں۔
متعلقہ موضوعات۔
  • پیداوری
  • پروگرامنگ۔
  • بصری بنیادی پروگرامنگ۔
  • مائیکروسافٹ ایکسل۔
مصنف کے بارے میں ریان ڈوبے۔(942 مضامین شائع ہوئے)

ریان نے الیکٹریکل انجینئرنگ میں بی ایس سی کی ڈگری حاصل کی ہے۔ اس نے 13 سال آٹومیشن انجینئرنگ میں ، 5 سال آئی ٹی میں ، اور اب ایک ایپس انجینئر ہے۔ MakeUseOf کے سابق منیجنگ ایڈیٹر ، انہوں نے ڈیٹا ویژولائزیشن پر قومی کانفرنسوں میں بات کی ہے اور انہیں قومی ٹی وی اور ریڈیو پر نمایاں کیا گیا ہے۔

ریان ڈوبے سے مزید

ہماری نیوز لیٹر کو سبسکرائب کریں

ٹیک ٹپس ، جائزے ، مفت ای بکس ، اور خصوصی سودوں کے لیے ہمارے نیوز لیٹر میں شامل ہوں!

سبسکرائب کرنے کے لیے یہاں کلک کریں۔