كيفية إنشاء جدول ديناميكي في vba؟
المصفوفة الديناميكية هي شيء يمكنك من خلاله تغيير حجم المصفوفة وإضافة المزيد من القيمة إليها أثناء تشغيل التعليمات البرمجية. في هذا البرنامج التعليمي، سنستكشف طرقًا لكتابة التعليمات البرمجية حيث يمكنك تغيير الحجم وإضافة المزيد من العناصر.
إنشاء جدول ديناميكي في VBA
- أولاً، أعلن عن مصفوفة باسمها.
- بعد ذلك، ترك عدد العناصر بين القوسين فارغا.
- الآن استخدم تعليمات ReDim.
- في النهاية، حدد عدد العناصر التي تريد إضافتها إلى المصفوفة.
Dim myArray() As String ReDim myArray(5)
لا تنس قراءة هذا المقال الذي كتبه جوشوا حول أداء المصفوفة الثابتة والديناميكية.
مجموعة ديناميكية متعددة الأبعاد
المثال الذي استخدمناه كان عبارة عن مصفوفة أحادية البعد، وبنفس الطريقة، يمكنك أيضًا استخدام عبارة ReDim لإنشاء مصفوفات ديناميكية متعددة الأبعاد.
Dim myArray() As String ReDim myArray(5, 8)
إضافة عنصر جديد إلى مصفوفة ديناميكية في VBA
ستكون المصفوفة الديناميكية بلا معنى إذا لم تتمكن من إضافة عنصر جديد إليها. في المثال التالي، سنرى كيفية إضافة عناصر جديدة بمجرد إعادة تعريف عدد العناصر في المصفوفة.
'declaring array with no element. '--------------------- Dim iNames() As String '--------------------- 'declaring variables to store counter _ 'and elements from the range. '---------------------- Dim iCount As Integer Dim iElement As Integer '---------------------- 'get the last row number to decide the _ 'number of elements for the array. '------------------------------------ iCount = Range("A1").End(xlDown).Row '------------------------------------ 're-defining the elements for the array. '------------------- ReDim iNames(iCount) '------------------- 'using a for loop to add elements in the array 'from the range starting from cell A1 '-------------------------------------------------- For iElement = 1 To iCount iNames(iElement - 1) = Cells(iElement, 1).Value Next iElement '-------------------------------------------------- 'print all the elements from the 'to the immediate window '-------------------- Debug.Print iNames(0) Debug.Print iNames(1) Debug.Print iNames(2) '--------------------
دعونا نفهم هذا الرمز خطوة بخطوة.
- في الخطوة الأولى، قمت بالإعلان عن مصفوفة باسم “myArray”.
- بعد ذلك لديك متغيرين لحفظ قيم العداد للحلقة والتي تحتاج إلى استخدامها لاحقًا في الكود للحصول على قيم من النطاق وإضافة تلك القيم كعناصر إلى المصفوفة.
- ثم لديك سطر من التعليمات البرمجية للحصول على الصف الأخير من النطاق مما يساعدك على معرفة العناصر التي تحتاج إلى إضافتها إلى المصفوفة.
- في الخطوة الرابعة، استخدمت عبارة ReDim لإعادة تعريف عناصر الصفيف باستخدام رقم الصف الأخير الذي تم الحصول عليه في الخطوة السابقة.
- ثم لديك FOR LOOP (For Next) الذي يتكرر عبر النطاق بدءًا من الخلية A1، ويأخذ القيم من هناك ويضيفها كعناصر إلى المصفوفة واحدًا تلو الآخر.
- في النهاية، لديك عبارة Debug.Print لطباعة كافة العناصر الموجودة في النافذة المباشرة .
وعندما أقوم بإضافة قيمة جديدة إلى النطاق وتشغيل الكود مرة أخرى، فإنه يضيف هذا العنصر تلقائيًا إلى المصفوفة ويطبعه في النافذة الفورية .
تعرف على المزيد حول جداول VBA
- VBA إضافة قيمة جديدة إلى المصفوفة
- طول صفيف VBA (الحجم)
- مجموعة VBA مع سلاسل
- مسح مصفوفة VBA
- حلقة VBA في صفيف
- مصفوفة متعددة الأبعاد VBA
- نطاق VBA إلى صفيف
- جدول إخراج VBA