/ / مجموعة ديناميكية في Excel VBA

مصفوفة ديناميكية في Excel VBA

إذا زاد حجم الصفيف الخاص بك وأنت لا تريد إصلاح حجم المصفوفة ، يمكنك استخدام ReDim الكلمة. Excel VBA ثم يغير حجم المصفوفة تلقائيا.

إضافة بعض الأرقام إلى العمود A.

مصفوفة ديناميكية في Excel VBA

ضع زر أمر في ورقة العمل الخاصة بك وقم بإضافة الأسطر التعليمات البرمجية التالية:

1. أولاً ، نعلن الصفيف المسمى بالأرقام. أعلن أيضًا عن متغيرين من النوع Integer. واحد اسمه حجم واحد اسمه الأول.

Dim numbers() As Integer, size As Integer, i As Integer

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

2. بعد ذلك ، نحدد حجم المصفوفة ونحفظها في الحجم المتغير. يمكنك استخدام دالة ورقة العمل CountA لهذا الغرض. أضف سطر التعليمة البرمجية التالية:

size = WorksheetFunction.CountA(Worksheets(1).Columns(1))

3. نحن نعرف الآن حجم الصف ويمكننا إعادة ضبطه. أضف سطر التعليمة البرمجية التالية:

ReDim numbers(size)

4. بعد ذلك ، نقوم بتهيئة كل عنصر من المصفوفة. نحن نستخدم حلقة.

For i = 1 To size
    numbers(i) = Cells(i, 1).Value
Next i

5. نعرض العنصر الأخير من الصفيف باستخدام MsgBox.

MsgBox numbers(size)

6. قم بإنهاء محرر Visual Basic وانقر فوق زر الأمر الموجود على الورقة.

نتيجة:

آخر عنصر من المصفوفة

7. الآن لنرى بوضوح لماذا يسمى هذا مصفوفة ديناميكية ، إضافة رقم إلى العمود A.

أضف رقم

8. انقر فوق زر الأمر مرة أخرى.

نتيجة مجموعة ديناميكية

الاستنتاج: لقد قام Excel VBA تلقائيًا بتغيير حجم هذه المجموعة الحيوية.

9. عندما تقوم باستخدام الكلمة الأساسية ReDim ، فإنك تقوم بمسح أي بيانات موجودة مخزنة حاليًا في الصفيف. على سبيل المثال ، قم بإضافة أسطر التعليمات البرمجية التالية إلى التعليمات البرمجية التي تم إنشاؤها مسبقًا:

ReDim numbers(3)
MsgBox numbers(1)

نتيجة:

دون الحفاظ عليها

الصفيف فارغ.

10. عندما تريد الاحتفاظ بالبيانات في الصفيف الموجود عند إعادة تعيينه ، استخدم الكلمة الأساسية Preserve.

ReDim Preserve numbers(3)
MsgBox numbers(1)

نتيجة:

مع الحفظ

اقرأ أيضًا: