ما هي مصفوفة VBA في Excel وكيفية البرمجة الأولى
كان VBA(VBA) جزءًا من مجموعة Microsoft Office لسنوات عديدة. على الرغم من أنه لا يحتوي على الوظائف والقوة الكاملة لتطبيق VB الكامل ، إلا أن VBA يوفر لمستخدمي Office المرونة لدمج منتجات Office وأتمتة العمل الذي تقوم به فيها.
واحدة من أقوى الأدوات المتوفرة في VBA هي القدرة على تحميل نطاق كامل من البيانات في متغير واحد يسمى المصفوفة. عن طريق تحميل البيانات بهذه الطريقة ، يمكنك معالجة أو إجراء عمليات حسابية على هذا النطاق من البيانات بعدة طرق.
إذن ما هي مجموعة VBA ؟ في هذه المقالة سوف نجيب على هذا السؤال ، ونوضح لك كيفية استخدام واحد في برنامج VBA النصي الخاص بك(your own VBA script) .
ما هي مصفوفة VBA؟
يعد استخدام مصفوفة VBA في (VBA)Excel أمرًا بسيطًا للغاية ، لكن فهم مفهوم المصفوفات يمكن أن يكون معقدًا بعض الشيء إذا لم تستخدم واحدة من قبل.
فكر(Think) في مصفوفة مثل صندوق به أقسام بداخله. المصفوفة أحادية البعد عبارة عن صندوق به سطر واحد من الأقسام. المصفوفة ثنائية الأبعاد عبارة عن صندوق به سطرين من الأقسام.
يمكنك وضع البيانات في كل قسم من هذا "الصندوق" بأي ترتيب تريده.
في بداية برنامج VBA النصي الخاص بك ، تحتاج إلى تعريف هذا "المربع" من خلال تحديد مجموعة VBA الخاصة بك . لذلك لإنشاء مصفوفة يمكنها الاحتفاظ بمجموعة واحدة من البيانات (مصفوفة ذات بُعد واحد) ، يمكنك كتابة السطر التالي.
Dim arrMyArray(1 To 6) As String
لاحقًا في برنامجك ، يمكنك وضع البيانات في أي قسم من هذه المصفوفة بالرجوع إلى القسم الموجود داخل الأقواس.
arrMyArray(1) = "Ryan Dube"
يمكنك إنشاء مصفوفة ثنائية الأبعاد باستخدام السطر التالي.
Dim arrMyArray(1 To 6,1 to 2) As Integer
الرقم الأول يمثل الصف والثاني هو العمود. لذلك يمكن أن تحتوي المصفوفة أعلاه على نطاق مكون من 6 صفوف وعمودين.
يمكنك تحميل أي عنصر من هذه المصفوفة بالبيانات على النحو التالي.
arrMyArray(1,2) = 3
سيؤدي هذا إلى تحميل 3 في الخلية B1.
يمكن أن تحتوي المصفوفة على أي نوع من البيانات كمتغير عادي ، مثل السلاسل النصية والمنطقية والأعداد الصحيحة والعوامات والمزيد.
يمكن أن يكون الرقم الموجود داخل الأقواس متغيرًا أيضًا. يستخدم المبرمجون عادةً For Loop للعد عبر جميع أقسام المصفوفة وتحميل خلايا البيانات في جدول البيانات إلى المصفوفة. سترى كيفية القيام بذلك لاحقًا في هذه المقالة.
كيفية برمجة صفيف VBA في Excel
دعنا نلقي نظرة على برنامج بسيط حيث قد ترغب في تحميل معلومات من جدول بيانات إلى مصفوفة متعددة الأبعاد.
كمثال ، دعنا نلقي نظرة على جدول بيانات مبيعات المنتج ، حيث تريد سحب اسم مندوب المبيعات والعنصر وإجمالي المبيعات من جدول البيانات.
لاحظ أنه في VBA عند الرجوع إلى صفوف أو أعمدة ، يمكنك حساب الصفوف والأعمدة(rows and columns) بدءًا من أعلى اليسار عند 1. وبالتالي فإن عمود مندوب هو 3 وعمود العنصر 4 وعمود الإجمالي هو 7.
لتحميل هذه الأعمدة الثلاثة في جميع الصفوف الأحد عشر ، ستحتاج إلى كتابة البرنامج النصي التالي.
Dim arrMyArray(1 To 11, 1 To 3) As String
Dim i As Integer, j As Integer
For i = 2 To 12
For j = 1 To 3
arrMyArray(i-1, j) = Cells(i, j).Value
Next j
Next i
ستلاحظ أنه من أجل تخطي صف الرأس ، يجب أن يبدأ رقم الصف في أول نظرة عند 2 بدلاً من 1. وهذا يعني أنك بحاجة إلى طرح 1 لقيمة صف الصفيف عند تحميل قيمة الخلية في المصفوفة باستخدام الخلايا(Cells) (i، j). القيمة.
مكان إدراج البرنامج النصي لصفيف VBA الخاص بك(Your VBA Array Script)
لوضع برنامج نصي VBA في (VBA)Excel ، تحتاج إلى استخدام محرر VBA . يمكنك الوصول إلى هذا عن طريق تحديد قائمة المطور(Developer) وتحديد عرض الرمز(View Code) في قسم عناصر التحكم(Controls) في الشريط.
إذا كنت لا ترى المطور(Developer) في القائمة ، فستحتاج إلى إضافته. للقيام بذلك ، حدد ملف(File) وخيارات لفتح نافذة خيارات Excel .(Options)
قم بتغيير أوامر الاختيار من القائمة المنسدلة إلى كافة الأوامر(All Commands) . حدد Developer من القائمة اليسرى وحدد الزر " إضافة(Add) " لنقله إلى الجزء الأيمن. حدد خانة الاختيار لتمكينه وحدد موافق(OK) للإنهاء.
عند فتح نافذة Code Editor ، تأكد من تحديد الورقة التي توجد بها بياناتك في الجزء الأيمن. حدد ورقة العمل(Worksheet) في القائمة المنسدلة اليسرى وتفعيل(Activate) في اليمين. سيؤدي هذا إلى إنشاء روتين فرعي جديد يسمى Worksheet_Activate ().
سيتم تشغيل هذه الوظيفة متى تم فتح ملف جدول البيانات. الصق الكود في جزء البرنامج النصي داخل هذا الروتين الفرعي.
سيعمل هذا البرنامج النصي من خلال الصفوف الـ 12 وسيعمل على تحميل اسم مندوب من العمود 3 ، والعنصر من العمود 4 ، وإجمالي البيع من العمود 7.
بمجرد الانتهاء من كلتا حلقتين For ، فإن المصفوفة ثنائية الأبعاد arrMyArray تحتوي على جميع البيانات التي حددتها من الورقة الأصلية.
معالجة المصفوفات في Excel VBA
لنفترض أنك تريد تطبيق ضريبة مبيعات بنسبة 5٪ على جميع أسعار البيع النهائية ، ثم كتابة جميع البيانات في ورقة جديدة.
يمكنك القيام بذلك عن طريق إضافة حلقة For أخرى بعد الأولى ، مع أمر لكتابة النتائج إلى ورقة جديدة.
For k = 2 To 12
Sheets("Sheet2").Cells(k, 1).Value = arrMyArray(k - 1, 1)
Sheets("Sheet2").Cells(k, 2).Value = arrMyArray(k - 1, 2)
Sheets("Sheet2").Cells(k, 3).Value = arrMyArray(k - 1, 3)
Sheets("Sheet2").Cells(k, 4).Value = arrMyArray(k - 1, 3) * 0.05
Next k
سيؤدي هذا إلى "تفريغ" المصفوفة بأكملها في الورقة 2(Sheet2) ، مع وجود صف إضافي يحتوي على الإجمالي مضروبًا في 5٪ لمبلغ الضريبة.
ستبدو الورقة الناتجة هكذا.
كما ترى ، تعد مصفوفات VBA في (VBA)Excel مفيدة للغاية ومتعددة الاستخدامات مثل أي خدعة أخرى في Excel(any other Excel trick) .
المثال أعلاه هو استخدام بسيط للغاية للمصفوفة. يمكنك إنشاء مصفوفات أكبر بكثير وإجراء الفرز أو المتوسط أو العديد من الوظائف الأخرى مقابل البيانات التي تخزنها فيها.
إذا كنت ترغب في الحصول على إبداع حقيقي ، يمكنك حتى إنشاء صفيفين يحتويان على نطاق من الخلايا(containing a range of cells) من ورقتين مختلفتين ، وإجراء عمليات حسابية بين عناصر كل مجموعة.
التطبيقات محدودة فقط بخيالك.
Related posts
كيفية حذف الأسطر الفارغة في Excel
كيفية استخدام ميزة Speak Cells في Excel
كيفية إدراج ورقة عمل Excel في مستند Word
كيفية استخدام تحليل ماذا لو في Excel
كيفية إصلاح صف في Excel
تهجئة الأرقام بسرعة في Word و Excel
كيفية إدراج CSV أو TSV في ورقة عمل Excel
كيفية إنشاء VBA ماكرو أو برنامج نصي في Excel
كيفية الفرز حسب التاريخ في Excel
كيفية البحث في Excel
الاختلافات بين Microsoft Excel Online و Excel لسطح المكتب
كيفية استخدام المراجع المطلقة في Excel
متى تستخدم مطابقة الفهرس بدلاً من VLOOKUP في Excel
كيفية دمج الخلايا والأعمدة والصفوف في Excel
كيفية إصلاح أخطاء # N / A في صيغ Excel مثل VLOOKUP
كيفية دمج البيانات في ملفات Excel متعددة
كيفية عمل مخطط دائري في Excel
مركز بيانات ورقة العمل الخاصة بك في Excel للطباعة
قم بتجميع الصفوف والأعمدة في ورقة عمل Excel
كيفية إزالة الصفوف المكررة في Excel