القراء مثلك يساعدون في دعم MUO. عند إجراء عملية شراء باستخدام الروابط الموجودة على موقعنا ، فقد نربح عمولة تابعة. اقرأ أكثر.

Vlookup هي وظيفة أساسية في Excel وأصبحت جزءًا حيويًا من معالجة البيانات. يوفر بعض الوظائف التي قد تربطها عادة بقاعدة بيانات كاملة.

ولكن ماذا لو كنت تريد أتمتة هذه الوظيفة؟ نعم ، هذا ممكن ، خاصة إذا كنت تعرف كيفية استخدام لغة أتمتة Excel الأصلية ، VBA. إليك كيفية أتمتة وظيفة vlookup في Excel VBA.

بناء جملة Vlookup

تعد بنية وظيفة vlookup بسيطة للغاية ، ولكنها تشتمل على أربعة جوانب يجب التركيز عليها ، حتى أثناء تشغيلها تلقائيًا في Excel VBA.

= vlookup (lookup_value ، lookup_array ، العمود_الفهرس ، المطابقة التامة / المطابقة الجزئية)

حجج الوظيفة لها المعنى التالي:

  • ابحث عن القيمة: هذه هي القيمة الأساسية التي تريد البحث عنها من صفيف البحث.
  • lookup_array: هذه هي البيانات المصدر ، التي سيستخدمها lookup_value كمرجع.
  • العمود_الفهرس: عمود لإرجاع القيمة منه.
  • المطابقة التامة / المطابقة الجزئية: استخدم إما 0 أو 1 لتحديد نوع المطابقة.

تحضير البيانات

تتكون مجموعة البيانات هذه من جزأين: جدول بحث ونقاط بيانات الوجهة.

instagram viewer

يتكون جدول البحث من ثلاثة أعمدة ، مع البيانات التي تملأ حقلي الفئة الفرعية واسم المنتج:

يحتوي الجدول الوجهة على أعمدة متطابقة ، بدون فئة فرعية أو بيانات اسم المنتج. لاحظ أن القيم الموجودة في عمود معرف الطلب موجودة أيضًا في نفس العمود في جدول البحث:

استخدام Vlookup مباشرة في جدول بيانات Excel

يمكنك ملء أعمدة الوجهة ، B و C استخدام وظيفة vlookup في Excel.

في الخلية B2، أدخل الصيغة التالية:

= VLOOKUP (A2 دولار, دولار F$3:ح$17, 2, 0)

وبالمثل ، في الخلية C2، أدخل هذه الصيغة:

= VLOOKUP (A2 دولار, دولار F$3:ح$17, 3, 0)

يمكنك سحب الصيغة لأسفل من الخلية B2 حتى نهاية العمود ، B17. كرر هذه العملية للعمود C أيضًا. سيتم تحديث قيم كل إدخال لاحق تلقائيًا في كلا العمودين.

القيم التي تمررها إلى وظيفة vlookup هي:

  • أ 2: قيمة البحث موجودة في هذه الخلية.
  • F3: H17: هذا يتكون من نطاق البحث.
  • 2/3: الأعمدة المرجعية المطلوب جلب القيمة منها.
  • 0: تشير إلى تطابق تام.

وظيفة VLOOKUP لبرنامج Excel VBA

تحتوي وظيفة vlookup على العديد من أوجه التشابه سواء كنت تستخدمها مباشرةً في Excel أو عبر VBA. سواء كنت محلل بيانات يتعامل مع صفوف من البيانات ، أو مدير مخزون يتعامل مع منتجات جديدة بانتظام ، يمكنك الاستفادة من استخدام vlookup.

عند العمل باستخدام نطاق بحث ديناميكي ، من الأفضل دائمًا أتمتة الصيغ لتجنب تطبيق الصيغ بشكل متكرر داخل Excel. من خلال أتمتة وظيفة Vlookup الخاصة بك في VBA ، يمكنك إجراء حسابات متعددة الأعمدة بنقرة واحدة.

1. قم بإجراء الإعداد المطلوب

ابدأ بفتح محرر الترميز (اضغط Alt + F11 أو انتقل إلى مطور علامة التبويب) في مصنف Excel جديد وأضف وحدة نمطية لبدء كتابة التعليمات البرمجية الخاصة بك. داخل محرر التعليمات البرمجية ، أضف الأسطر التالية في الجزء العلوي من نافذة الترميز لإنشاء إجراء فرعي:

 Sub vlookup_fn1 () End Sub

الروتين الفرعي عبارة عن حاوية لرمز VBA الخاص بك وهو ضروري لتشغيله بنجاح. البديل هو إنشاء نموذج مستخدم VBA لجعل واجهة المستخدم أكثر تفاعلية.

2. قم بتعريف المتغيرات الخاصة بك وإنشاء نطاقات مرجعية

أولاً ، تحتاج إلى التصريح عن أنواع البيانات المتغيرة باستخدام امتداد خافت إفادة:

 خافت أنا كعدد صحيح ، Lastrow طالما

بعد ذلك ، قم بإنشاء ملف الصف الأخير متغير ، لتخزين قيمة آخر صف مملوء ضمن نطاق البحث الخاص بك. تستخدم وظيفة lastrow الامتداد نهاية (xldown) دالة لحساب مرجع صف النهاية ضمن النطاق المحدد.

في هذه الحالة ، يخزن متغير lastrow قيمة الصف الأخير المملوء بنطاق البحث ،17.

 lastrow = Sheets ("Sheet2"). Range ("F3"). End (xlDown) .Row

في المثال أعلاه ، يمتد الجدول الوجهة من أ 2: سي 17، بينما يمتد الجدول المصدر من F2: H17. ستتكرر صيغة vlookup خلال كل قيمة مخزنة في العمود A ، والبحث عنها في الجدول المصدر ، ولصق الإدخالات المطابقة في العمودين B و C.

ومع ذلك ، قبل القفز إلى الحلقة ، يجب عليك تخزين قيم النطاق داخل متغير جديد (my_range)، على النحو التالي:

 my_range = Sheets ("Sheet2"). Range ("F3: H" & lastrow)

يجب أن تحدد بوضوح مرجع خلية البداية (F3) ومرجع عمود النهاية (ح). يقوم VBA تلقائيًا بإلحاق قيمة الصف لإكمال صفيف البحث.

3. اكتب حلقة للتنقل عبر كل قيمة بحث

قبل كتابة الحلقة ، حدد قيمة صف البداية ، 2. يعد تحديد قيمة البداية للحلقة أمرًا ضروريًا لأنك تتعامل مع العناصر الديناميكية. في الجدول الوجهة ، الصف 2 هو الصف الأول من البيانات. قم بتغيير هذه القيمة إذا كانت بياناتك تبدأ في صف مختلف.

 أنا = 2

يمكنك استخدام ملف افعل اثناء حلقة لمعالجة كل صف ، بدءًا من الصف 2 وتنتهي عند الصف 17. هذا الجانب ديناميكي مثل باقي الكود. ستستمر الحلقة حتى يصبح الشرط خاطئًا. استخدم الشرط للتحقق من وجود قيمة غير فارغة في الخلية الأولى من الصف الحالي.

 اعمل أثناء len (Sheets ("Sheet2"). Cells (i، 1) .value) <> 0

داخل الحلقة ، يمكنك استدعاء وظيفة VLookup لملء الخلايا:

 أوراق ("ورقة 2"). خلايا (ط ، 2). القيمة = _ التطبيق. ورقة العمل VLookup (Sheets ("Sheet2") _ .Cells (i، 1) .Value، my_range، 2، False) Sheets ("Sheet2"). Cells (i، 3) .Value = _ Application. ورقة العمل VLookup (Sheets ("Sheet2") _ .Cells (i، 1) .Value، my_range، 3، False)

تحدد هذه العبارات قيمة الخلايا في الصف الحالي ، في العمودين 2 و 3 على التوالي. يستخدمون ال ورقة العمل يعترض على استدعاء VLookup وظيفة ، تمرير القيمة المقابلة من العمود 1 للبحث عنها. تمرر أيضًا النطاق الذي حددته مسبقًا وفهرس العمود ذي الصلة لجلب القيمة النهائية منه.

كود vlookup جاهز ، لكنك لا تزال بحاجة إلى زيادة متغير الصف في كل مرة حول الحلقة:

 أنا = أنا + 1

في كل مرة يتم تشغيل الحلقة ، فإنها تزيد من قيمة أنا بنسبة 1. تذكر أن قيمة صف البداية هي 2 ، وتحدث الزيادة في كل مرة يتم فيها تشغيل الحلقة. استخدم ال حلقة الكلمة الأساسية لتعيين نهاية كتلة رمز الحلقة.

عند تشغيل التعليمات البرمجية بالكامل ، ستقوم بملء النتائج في كلا العمودين ، بناءً على القيم الموجودة في الجدول المصدر.

إليك الكود الكامل للرجوع إليه:

 Sub vlookup_fn1 () Dim i As Integer lastrow = Sheets ("Sheet2"). Range ("F3"). End (xlDown) .Row my_range = Sheets ("Sheet2"). Range ("F3: H" & lastrow) i = 2 Do while Len (Sheets ("Sheet2"). Cells (i، 1) .Value) <> 0 On Error Resume Next Sheets ("Sheet2"). Cells (i، 2) .Value = _ طلب. ورقة العمل VLookup (Sheets ("Sheet2") _ .Cells (i، 1) .Value، my_range، 2، False) Sheets ("Sheet2"). Cells (i، 3) .Value = _ Application. ورقة العمل VLookup (Sheets ("Sheet2") _ .Cells (i، 1) .Value، my_range، 3، False) i = i + 1 LoopEnd Sub

4. قم بإنشاء زر لتشغيل التعليمات البرمجية

مع خروج الشفرة من الطريق ، يمكنك إنشاء زر في مصنف Excel الخاص بك لتشغيله بنقرة واحدة. أدخل الشكل المفضل لديك في ورقة Excel فارغة ، وانقر بزر الماوس الأيمن فوقه ، ثم انقر فوق تعيين ماكرو خيار.

ضمن مربع الحوار ، حدد اسم الروتين الفرعي الخاص بك ، وانقر فوق نعم.

عندما تريد تشغيل التعليمات البرمجية الخاصة بك ، انقر فوق الزر لترى كيف يتم تعبئة البيانات على الفور.

استخدام Excel VBA لأتمتة وظائف البحث

تعد Excel VBA لغة مرنة ، تم ضبطها جيدًا لجعل الأتمتة أسهل في الجوانب المختلفة لبرنامج MS Excel. توجد العديد من الخيارات في MS Excel VBA ، بدءًا من أتمتة وظائف Excel إلى إنشاء جداول محورية معقدة تلقائيًا.

عند العمل مع قطاعات Excel المختلفة ، يمكنك تجربة خيارات متنوعة لجعل حياتك أسهل وأكثر كفاءة.