وظيفة ورقة عمل VBA | كيفية استخدام WorksheetFunction في VBA؟

وظائف ورقة عمل Excel VBA

تُستخدم وظيفة ورقة العمل في VBA عندما يتعين علينا الرجوع إلى ورقة عمل محددة ، عادةً عندما نقوم بإنشاء وحدة نمطية يتم تنفيذ الكود في الورقة النشطة حاليًا من المصنف ولكن إذا أردنا تنفيذ الكود في ورقة العمل المحددة ، فإننا نستخدم وظيفة ورقة العمل ، هذه الوظيفة لها استخدامات وتطبيقات مختلفة في VBA.

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

نعم!!! لقد سمعت ذلك بشكل صحيح ، يمكننا الوصول إلى وظائف ورقة العمل في VBA أيضًا. يمكننا الوصول إلى بعض وظائف ورقة العمل أثناء كتابة الكود وجعله جزءًا من الكود الخاص بنا.

كيفية استخدام وظائف ورقة العمل في VBA؟

يمكنك تنزيل قالب وظيفة ورقة عمل VBA هذا هنا - قالب وظيفة ورقة عمل VBA

في ورقة العمل ، تبدأ جميع الصيغ بعلامة المساواة (=) ، وبالمثل في ترميز VBA من أجل الوصول إلى صيغ ورقة العمل ، يجب أن نستخدم كلمة "دالة ورقة العمل".

قبل إدخال أي صيغة لورقة العمل ، تحتاج إلى ذكر اسم الكائن "WorksheetFunction" ثم ضع نقطة (.) ثم ستحصل على قائمة بجميع الوظائف المتاحة ضمن هذا الكائن.

في هذه المقالة ، سنركز بشكل حصري على كيفية استخدام وظيفة ورقة العمل في ترميز VBA والتي ستضيف المزيد من القيمة إلى معرفتك بالترميز.

# 1 - وظائف ورقة عمل SUM بسيطة

حسنًا ، لبدء استخدام وظائف ورقة العمل ، قم بتطبيق وظيفة SUM البسيطة في Excel لإضافة أرقام من ورقة العمل.

افترض أن لديك بيانات المبيعات والتكلفة الشهرية في ورقة العمل مثل الورقة أدناه.

في B14 و C14 ، نحتاج إلى الوصول إلى إجمالي الأرقام المذكورة أعلاه. اتبع الخطوات التالية لبدء عملية تطبيق وظيفة "SUM" في Excel VBA.

الخطوة 1: قم بإنشاء اسم ماكرو بسيط في Excel.

رمز:

 Worksheet_Function_Example1 () الفرعية End Sub 

الخطوة 2: نظرًا لأننا نحتاج إلى النتيجة في الخلية B14 ، ابدأ الكود كـ Range (“B14”)

رمز:

 النطاق الفرعي Worksheet_Function_Example1 ("B14"). القيمة = End Sub 

الخطوة 3: في B14 نحتاج إلى القيمة كنتيجة لمجموع الأرقام. لذلك من أجل الوصول إلى وظيفة SUM من ورقة العمل ، ابدأ الكود باسم " دالة ورقة العمل".

رمز:

النطاق الفرعي Worksheet_Function_Example1 ("B14"). القيمة = دالة ورقة العمل. End Sub

الخطوة 4: في اللحظة التي تضع فيها نقطة (.) ، ستبدأ في عرض الوظائف المتاحة. لذا حدد SUM من هذا.

رمز:

 النطاق الفرعي Worksheet_Function_Example1 ("B14"). القيمة = WorksheetFunction.Sum End Sub 

الخطوة 5: قدم الآن مرجع الأرقام المذكورة أعلاه ، أي النطاق ("B2: B13").

رمز:

 النطاق الفرعي Worksheet_Function_Example1 ("B14"). القيمة = WorksheetFunction.Sum (Range ("B2: B13")) End Sub 

الخطوة 6: وبالمثل بالنسبة للعمود التالي ، قم بتطبيق الكود المشابه عن طريق تغيير مراجع الخلية.

رمز:

 Sub Worksheet_Function_Example1 () Range ("B14"). Value = WorksheetFunction.Sum (Range ("B2: B13")) Range ("C14"). Value = WorksheetFunction.Sum (Range ("C2: C13")) End Sub 

الخطوة 7: الآن قم بتشغيل هذا الرمز يدويًا أو باستخدام المفتاح F5 للحصول على إجمالي في خلايا B14 و C14.

واو ، لقد حصلنا على قيمنا. هناك شيء واحد تحتاج إلى ملاحظته هنا وهو أنه ليس لدينا أي صيغة في ورقة العمل ولكننا حصلنا للتو على نتيجة الدالة "SUM" في VBA.

# 2 - استخدم VLOOKUP كوظيفة ورقة عمل

سنرى كيفية استخدام VLOOKUP في VBA. افترض أدناه البيانات التي لديك في ورقة إكسل الخاصة بك.

في الخلية E2 ، قمت بإنشاء قائمة منسدلة لجميع المناطق.

بناءً على التحديد الذي أجريته في الخلية E2 ، نحتاج إلى جلب الرمز السري للمنطقة المعنية. ولكن هذه المرة من خلال VBA VLOOKUP ، وليس من خلال ورقة العمل VLOOKUP. اتبع الخطوات التالية لتطبيق VLOOKUP.

الخطوة 1: قم بإنشاء اسم ماكرو بسيط في الإجراء الفرعي.

رمز:

 Worksheet_Function_Example2 () الفرعية End Sub 

الخطوة 2: نحتاج إلى النتيجة في الخلية F2. لذا ابدأ الكود كـ Range (“F2”). القيمة =

رمز:

 النطاق الفرعي Worksheet_Function_Example2 ("F2"). القيمة = End Sub 

الخطوة 3: للوصول إلى وظيفة ورقة العمل ، يبدأ VLOOKUP الرمز كـ "WorksheetFunction.VLOOKUP".

رمز:

 النطاق الفرعي Worksheet_Function_Example2 ("F2"). القيمة = WorksheetFunction.Vlookup (End Sub 

الخطوة 4: إحدى المشكلات هنا هي أن بناء الجملة لن يمنحك أي نوع من الإرشادات للعمل مع VLOOKUP. يجب أن تكون متأكدًا تمامًا من البنية التي تعمل عليها.

الصيغة الأولى لـ VLOOKUP هي "قيمة البحث". في هذه الحالة ، قيمة البحث الخاصة بنا هي قيمة خلية E2 ، لذا اكتب الرمز كـ Range ("E2"). القيمة

رمز:

 النطاق الفرعي Worksheet_Function_Example2 ("F2"). القيمة = WorksheetFunction.Vlookup (Range ("E2"). Value ، End Sub 

الخطوة 5: الآن الوسيطة الثانية هي صفيف الجدول الخاص بنا ، في هذه الحالة ، يتراوح نطاق مصفوفة الجدول لدينا من A2 إلى B6. لذلك سيكون الرمز هو النطاق ("A2: B6")

رمز:

 Sub Worksheet_Function_Example2 () Range ("F2"). Value = WorksheetFunction.Vlookup (Range ("E2"). Value، Range ("A2: B6")، End Sub 

الخطوة 6: ستكون الوسيطة الثالثة من أي عمود نحتاج إلى البيانات من صفيف الجدول. نحتاج هنا إلى البيانات من العمود الثاني ، لذا ستكون الوسيطة 2.

رمز:

 Sub Worksheet_Function_Example2 () Range ("F2"). Value = WorksheetFunction.Vlookup (Range ("E2"). Value، Range ("A2: B6")، 2، End Sub 

الخطوة 7: الوسيطة الأخيرة هي البحث عن النطاق ، فنحن بحاجة إلى تطابق تام بحيث تكون الوسيطة صفر (0)

رمز:

 Sub Worksheet_Function_Example2 () Range ("F2"). Value = WorksheetFunction.VLookup (Range ("E2"). Value، Range ("A2: B6")، 2، 0) End Sub 

لذلك ، انتهينا من جزء الترميز. انتقل الآن إلى ورقة العمل وحدد أيًا من النطاق.

انتقل الآن إلى وحدة الترميز الخاصة بك وقم بتشغيل الماكرو باستخدام مفتاح F5 أو يدويًا للحصول على الرمز السري للمنطقة المحددة.

لا يمكننا العودة وتشغيل الماكرو في كل مرة ، لذلك دعونا نخصص ماكرو للأشكال. أدخل أحد الأشكال في ورقة عمل.

أضف قيمة نصية إلى الشكل المدرج.

الآن انقر بزر الماوس الأيمن وقم بتعيين اسم الماكرو لهذا الشكل.

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

الآن ، هذا الشكل يحمل رمز صيغة VLOOKUP الخاصة بنا. لذلك كلما قمت بتغيير اسم المنطقة ، انقر فوق الزر ، فسيتم تحديث القيم.

أشياء للذكرى

  • للوصول إلى وظائف ورقة العمل ، نحتاج إلى كتابة كلمة " دالة ورقة العمل" أو " وظيفة ورقة العمل "
  • ليس لدينا إمكانية الوصول إلى جميع الوظائف فقط عدد قليل.
  • لا نرى البنية الفعلية لوظائف ورقة العمل ، لذلك نحتاج إلى التأكد تمامًا من الوظيفة التي نستخدمها.

$config[zx-auto] not found$config[zx-overlay] not found