جدول المحتويات
في هذه المقالة ، سأوضح لك كيف يمكنك استدعاء فرعي من فرعي أو وظيفة في فبا في Excel . ستتعلم استدعاء Sub مع أو بدون وسيطات ، بالإضافة إلى كل من عام و خاص Subs .
كيفية استدعاء Sub في VBA في Excel (عرض سريع)
ملاحظة: هنا Sub يسمى Sub2 يستدعي Sub يسمى Sub1 .
تنزيل Practice Workbook
VBA Call Sub.xlsm
قم بتنزيل كتاب التدريب هذا لممارسة المهمة أثناء قراءة هذه المقالة.
4 طرق لاستدعاء Sub في VBA في Excel
هنا لدينا Sub في VBA يسمى Sub1 .
إذا قمت بتشغيل Sub1 ، فستتلقى الرسالة "Sub1 is Run."
اليوم هدفنا هو معرفة كيف يمكننا استدعاء هذا Sub من Sub أو الوظيفة بكل الطرق الممكنة.
1. اتصل بـ Sub بدون وسيطات من فرع آخر في VBA في Excel
أولاً ، سنقوم باستدعاء Sub بدون أي وسيطة من آخر Sub في VBA .
هنا ، Sub1 هي Sub بدون وسيطات.
الآن سنسمي Sub1 من آخر فرعي يسمى Sub2 .
لاستدعاء Sub1 من آخر Sub ، لديك لاستخدام سطر الكود:
Sub1
أو
Call Sub1
الآن إذا قمت بتشغيل Sub2 ،سيتم استدعاء Sub1 وستظهر الرسالة "Sub1 is Run."
2. اتصل بـ Sub مع وسيطات من Other Sub في VBA في Excel
الآن سنقوم باستدعاء Sub مع وسيطات من Sub في VBA .
هنا قمنا بتغيير Sub Sub1 بطريقة تحتوي على وسيطة تسمى Input_Value ، ومتى تشغيل ، يعرض هذه الوسيطة.
لاستدعاء هذا Sub من آخر Sub ( Sub2 ) ، علينا استخدام سطر الكود:
Sub1(Input_Value)
Or
Call Sub1(Input_Value)
هنا ، استخدمنا:
Call Sub1(10)
الآن ، عندما نقوم بتشغيل Sub2 ، سيتم استدعاء Sub1 مع الإدخال 10 ، وسيتم عرض 10 في صندوق الرسائل .
قراءات مماثلة:
- كيفية إرجاع قيمة في دالة VBA (قيم صفيف وغير صفيف)
- استخدم دالة LCase في VBA في Excel (مع 4 أمثلة)
- كيف استخدم وظيفة VBA SPLIT في Excel (5 أمثلة)
- استخدم وظيفة TRIM في VBA في Excel (التعريف + رمز VBA)
3. اتصل بـ Sub مع / بدون وسيطات من وظيفة محددة من قبل المستخدم في VBA في Excel
يمكنك أيضًا استدعاء Sub من دالة محددة بواسطة المستخدم في VBA .
⧭ فرعي بدون وسيطات
دعونا نستدعي a Sub بدون وسيطات أولاً .
هنا تغيرنا مرة أخرى Sub Sub1 للواحد بدون وسيطات.
الآن سننشئ وظيفة تسمى Function1 واستدعاء Sub1 من تلك الوظيفة.
لاستدعاء Sub من وظيفة ، فإن سطر الكود المراد استخدامه هو نفسه :
Sub1
أو
Call Sub1
الآن ، إذا أدخلت Function1 في أي خلية من ورقة العمل الخاصة بك ، فسيتم استدعاء Sub1 و صندوق الرسائل سيعرض "Sub1 is Run." .
⧭ Sub with Arguments
يمكنك أيضًا استدعاء فرعي مع وسيطات من دالة محددة بواسطة المستخدم في VBA في Excel .
هنا قمنا بتغيير Sub1 إلى واحد مع وسيطات مرة أخرى.
الآن قمنا باستدعاء Sub1 من Function1 بسطر الكود:
Call Sub1(10)
الآن إذا أدخلنا Function1 في أي خلية من ورقة العمل الخاصة بنا ، ستظهر 10 في صندوق الرسائل .
4. استدعاء فرعي خاص من فرع آخر أو وظيفة في VBA في Excel
حتى الآن ، قمنا باستدعاء Public Sub من Sub أو وظيفة . هذه المرة ، سنوضح كيف يمكنك استدعاء فرعي خاص من فرعي أو وظيفة في فبا .
⧭ الاتصال من Sub:
يمكنك فقط استدعاء Private Sub من آخر Sub إذا كانوا اثنان في نفس الوحدة من نافذة VBA .
هنالقد غيرنا Sub1 إلى Private Sub بإضافة المصطلح Private في السطر الأول. وسميها من Sub2 التي هي في نفس الوحدة.
الآن إذا قمت بتشغيل Sub2 ، ستحصل على صندوق الرسائل يعرض 10 .
⧭ الاتصال من الوظيفة:
نفس الوظائف. لاستدعاء Private Sub من وظيفة في VBA ، يجب أن يكون Sub و Function في نفس الوحدة.
هنا قمنا بإدخال Private Sub Sub1 و Function 1 في نفس الوحدة.
الآن إذا أدخلنا Function1 في أي خلية من ورقة العمل الخاصة بنا ، فسيعرض مربع رسالة 10 .
الملخص
فيما يلي ملخص لجميع النقاط التي تمت مناقشتها اليوم:
- يمكنك استدعاء Sub من Sub أو وظيفة محددة بواسطة المستخدم في VBA باستخدام المصطلح "Call" مع الاسم من Sub ، أو ببساطة وضع اسم Sub .
- إذا كانت العلامة Sub المراد استدعاؤها تحتوي على وسيطة ، يجب عليك استدعاء Sub بأي قيمة من هذه الوسيطة .
- إذا تم الإعلان عن Sub باعتباره خاص واحد ، عليك الاتصال به من آخر فرعي أو الوظيفة من نفس الوحدة.
الخاتمة
باستخدام هذه الطرق ، يمكنك استدعاء فرعي من فرعي أو وظيفة في VBA في Excel. هل لديك اسئلة؟ لا تتردد في سؤالنا.