مصفوفات VBA في Excel | كيف تعمل مع وظيفة المصفوفات في VBA؟

في مصفوفات VBA تُستخدم لتعريف مجموعة الكائنات معًا ، توجد تسع وظائف صفيف مختلفة في VBA وهي ARRAY و ERASE و FILTER و ISARRAY و JOIN و LBOUND و REDIM و SPLIT و UBOUND ، وكلها وظائف مضمنة للمصفوفة في VBA ، تعطينا الدالة Array قيمة الوسيطة المعطاة.

دالة صفيف Excel VBA

دالة الصفيف هي مجموعة من القيم في متغير واحد. يمكننا تزويد مصفوفة إلى روتين فرعي في vba والوظائف والخصائص. تعد مصفوفات VBA إحدى التقنيات المستخدمة غالبًا لتخزين أكثر من قيمة في المتغير.

أمثلة على دالة صفيف Excel VBA

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

يمكنك تنزيل قالب VBA Array Excel هذا هنا - قالب VBA Array Excel

رمز:

 Array_Ex () Dim x As Integer Dim y As Integer x = 1 y = 2 Range ("A1"). Value = x Range ("A2"). Value = y End Sub 

في المثال أعلاه ، أعلنت عن متغيرين يسمى x & y. X تحمل 1 كقيمة و Y تحمل 2 كقيمة.

الآن ، انظر إلى مثال دالة صفيف Excel VBA بمتغير واحد.

رمز:

 Array_Ex () Dim x (1 To 2) كنطاق صحيح ("A1"). القيمة = x (1) Range ("A2"). القيمة = x (2) End Sub 

الآن إذا قمت بتشغيل رمز VBA هذا ، فسيكون لدينا قيم في الخلية A1 و A2.

عرضت متغيرات الصفيف النتيجة على أنها صفر. هذا لأننا أعلنا للتو المتغيرات على أنها متغيرين لكننا لم نخصص أي قيم لتلك المتغيرات. لذلك علينا إسناد قيم لهذه المتغيرات.

رمز:

 Array_Ex () Dim x (1 To 2) كـ عدد صحيح x (1) = 10 x (2) = 20 Range ("A1"). القيمة = x (1) Range ("A2"). القيمة = x (2) ) End Sub 

الآن قم بتشغيل الكود للحصول على النتائج.

قبل أن ندخل قيم متغيرات الصفيف للخلايا ، نحتاج إلى تعيين القيمة لمتغيرات الصفيف المعلنة مثل أننا قمنا بتعيين المتغيرات x (1) = 10 & x (2) = 20.

المثال 1 - أدخل الأرقام المسلسلة باستخدام المصفوفة الثابتة

لنلقِ نظرة على مثال استخدام مصفوفة ثابتة لإدخال الأرقام التسلسلية. هذا يشبه إلى حد كبير السابق.

رمز:

 Sub StaticArray_Ex () Dim x (1 To 5) كعدد صحيح x (1) = 10 x (2) = 20 x (3) = 30 x (4) = 40 x (5) = 50 Range ("A1"). القيمة = x (1) النطاق ("A2"). القيمة = x (2) النطاق ("A3"). القيمة = x (3) النطاق ("A4"). القيمة = x (4) النطاق ("A5" القيمة = x (5) End Sub 

الآن قم بتشغيل هذا الرمز لإدخال الأرقام التسلسلية.

مثال # 2 - أدخل الأرقام المسلسلة باستخدام المصفوفة الديناميكية

الآن سنرى النوع الثاني من المصفوفة أي المصفوفة الديناميكية

رمز:

 Sub DynamicArray_Ex () Dim x () كعدد صحيح ReDim x (5) x (1) = 10 x (2) = 20 x (3) = 30 x (4) = 40 x (5) = 50 Range ("A1" ) .Value = x (1) Range ("A2"). Value = x (2) Range ("A3"). Value = x (3) Range ("A4"). Value = x (4) Range (" A5 "). القيمة = x (5) End Sub 

الآن قم بتشغيل هذا الرمز للحصول على نتيجة الأرقام التسلسلية. نحصل على نفس النتيجة السابقة.

إذا لاحظت أننا لم نقدم طول المصفوفة أثناء الإعلان عن المتغير بدلاً من ذلك قمنا بتعيين القيمة الأخيرة لصفيف VBA باستخدام وظيفة VBA Redim. يحتفظ Redim بالقيمة الأخيرة للمصفوفة المراد تمريرها.

مثال # 3 - إنشاء وظيفة أدخل أسماء الشهر باستخدام المصفوفة

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

رمز:

 دالة List_Of_Months () List_Of_Months = صفيف ("يناير" ، "فبراير" ، "مارس" ، "أبريل" ، "مايو" ، "يونيو" ، "يوليو" ، "أغسطس" ، "سبتمبر" ، "أكتوبر" ، "نوفمبر "،" ديسمبر ") وظيفة النهاية 

سيُنشئ الكود أدناه وظيفة يمكنها إدراج أشهر في ورقة Excel الخاصة بنا.

انسخ والصق الكود أدناه في الوحدة الخاصة بك.

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

افتح الصيغة واضغط على Enter. سنحصل على اسم الشهر الأول ، أي يناير

إذا أدخلت الصيغة مرة أخرى ، فسنحصل على شهر يناير فقط وليس شهر فبراير التالي. لذا حدد أولاً 12 عمودًا في صف واحد.

افتح الآن الصيغة في خلية D1.

نظرًا لأننا أنشأنا الصيغة باستخدام الصفيف ، نحتاج إلى إغلاق الصيغ كصيغة صفيف فقط. لذلك استمر في الضغط على Ctrl + Shift + Enter. سيكون لدينا جميع الأسماء لمدة 12 شهرًا.

أشياء للذكرى

  • هناك نوعان آخران من المصفوفات المتاحة مثل المصفوفة ثنائية الأبعاد والمصفوفة متعددة الأبعاد.
  • تبدأ المصفوفات من 0 وليس من 1. يشير الصفر إلى الصف الأول والعمود الأول.
  • المصفوفة موضوع كبير تحتاج إلى فهمه للتقدم إلى المستوى التالي.
  • سيكون متغير الصفيف متغيرًا يحتوي على الكثير من البيانات في كل مرة يتقدم فيها إلى المستوى التالي.
  • يتم استخدام Redim لتخزين آخر طول للمصفوفة في نوع مصفوفة ديناميكية.

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