الرئيسية
» مكتب MS
»
كيفية استخدام لغة VBA لإدراج صفوف في برنامج Excel: 3 طرق موثوقة
كيفية استخدام لغة VBA لإدراج صفوف في برنامج Excel: 3 طرق موثوقة
لإدراج صفوف في Excel باستخدام VBA، استخدم Insertالطريقة على صف في ورقة العمل. تغطي الأمثلة الثلاثة أدناه إضافة صف فارغ واحد أو عدة صفوف فارغة، وإدراج نسخة من صف موجود، وإنشاء صف فارغ بدون تنسيق موروث. يستهدف كل ماكرو ورقة عمل باسم معين Data؛ استبدل هذا الاسم باسم علامة التبويب المحددة في مصنفك.
الخطوة 1: جهّز المصنف وافتح محرر VBA
استخدم إصدار سطح المكتب من برنامج Excel. يمكن لبرنامج Excel للويب فتح مصنف يحتوي على وحدات ماكرو، ولكنه لا يستطيع إنشاء أو تعديل أو تشغيل وحدات ماكرو VBA. إذا كان مصنفك يحتوي على بيانات مهمة، فاحفظ نسخة احتياطية قبل تشغيل التعليمات البرمجية لأن إدراج الصفوف يُزيح الصفوف أسفل نقطة الإدراج.
في نظام ويندوز، اضغط على Alt+F11 لفتح محرر فيجوال بيسك (VBE). يمكنك أيضًا اختيار المطور > فيجوال بيسك . في محرر فيجوال بيسك، اختر إدراج > وحدة نمطية ، ثم الصق ماكرو في الوحدة النمطية الفارغة. توضح تعليمات مايكروسوفت لمحرر فيجوال بيسك نفس آلية عمل الوحدة النمطية.
افتح وحدة VBA قياسية في محرر Visual Basic لإضافة الماكرو.
الخطوة الثانية: اختر إحدى طرق إدخال الصفوف الثلاث
الطريقة الأولى: إدراج صف فارغ واحد أو عدة صفوف فارغة
يُدرج هذا الماكرو صفًا كاملاً في ورقة العمل فوق الصف الرابع الحالي. Shift:=xlDownويُخبر الوسيط برنامج Excel بنقل الخلايا الموجودة إلى أسفل لإفساح المجال. ويوثّق مرجع Range.Insert خيارات الإزاحة والتنسيق.
Sub InsertOneRow()
ThisWorkbook.Worksheets("Data").Rows(4).Insert Shift:=xlDown
End Sub
لإدراج صفين بدءًا من الصف الثالث، استخدم نطاق الصفوف بدلاً من ذلك:
Sub InsertTwoRows()
ThisWorkbook.Worksheets("Data").Rows("3:4").Insert Shift:=xlDown
End Sub
يتم إدراج الصفين 3 و4، وتتحرك الصفوف الموجودة إلى الأسفل. غيّر أرقام الصفوف لتحديد بداية الصفوف الجديدة وعددها. ThisWorkbookيشير المرجع إلى ضرورة تخزين الماكرو في المصنف الذي ترغب في تعديله.
يؤدي إدراج الصفين 3 و 4 إلى إنشاء فجوة من صفين ونقل السجلات الموجودة إلى أسفل.
الطريقة الثانية: إدراج نسخة من صف موجود
استخدم هذه النسخة عندما ترغب في تكرار قيم وصيغ وتنسيق صف موجود في الصف الجديد. تقوم هذه النسخة أولاً بإنشاء مساحة في الصف 6، ثم تنسخ الصف 2 إلى تلك المساحة الجديدة. يبقى الصف 2 الأصلي في مكانه. توثق مايكروسوفت وسيطة الوجهة الاختيارية في مرجع Range.Copy الخاص بها .
Sub InsertCopyOfRow()
With ThisWorkbook.Worksheets("Data")
.Rows(6).Insert Shift:=xlDown
.Rows(2).Copy Destination:=.Rows(6)
End With
End Sub
استبدل 2رقم الصف الأصلي 6برقم الصف الذي يجب أن تظهر فيه النسخة المكررة. بما أن الصف بأكمله يُنسخ، راجع الصيغ والمراجع في النسخة المُدرجة قبل الاعتماد عليها.
يظهر صف ألفا المنسوخ في الصف 6؛ بينما يبقى صف المصدر في الصف 2.
الطريقة الثالثة: إدراج صف بدون نسخ التنسيق
قد ينقل برنامج Excel التنسيق من صف مجاور إلى صف مُدرج. أدرج الصف، ثم استدعِه ClearFormatsلإزالة ذلك التنسيق:
Sub InsertUnformattedRow()
With ThisWorkbook.Worksheets("Data")
.Rows(3).Insert Shift:=xlDown
.Rows(3).ClearFormats
End With
End Sub
يؤدي هذا إلى مسح التنسيق في صف ورقة العمل المُدرج، دون حذف القيم في الصفوف الأخرى. يمكنك الاطلاع على شرح هذه الطريقة في وثائق ClearFormats من مايكروسوفت.
تقوم خاصية ClearFormats بإزالة تنسيق الخلية الموروث من الصف المُدرج.
الخطوة 3: شغّل الماكرو وتحقق من النتيجة
ارجع إلى محرر VBA، وضع المؤشر في أي مكان داخل الإجراء الذي تريد تشغيله، ثم اضغط على F5 . يمكنك أيضًا العودة إلى Excel واستخدام "المطور" > "وحدات الماكرو" ، ثم تحديد اسم الماكرو، واختيار " تشغيل" . راجع دليل Microsoft لتشغيل ماكرو في Excel للاطلاع على الخيارات المتاحة.
تأكد من إدراج الصف أو الصفوف المطلوبة في ورقة العمل المقصودة قبل الحفظ. إذا كنت ترغب في الاحتفاظ بشفرة VBA في المصنف، فاحفظه كمصنف Excel يدعم وحدات الماكرو (.xlsm) ؛ فالحفظ كملف عادي .xlsxلا يحافظ على وحدات ماكرو VBA. توضح مايكروسوفت ذلك في إرشادات حفظ وحدات الماكرو . شغّل وحدات الماكرو فقط من مصادر موثوقة، والتزم بسياسة أمان وحدات الماكرو في مؤسستك.
المشكلات الشائعة
"الرمز السفلي خارج النطاق": اسم ورقة العمل في الكود لا يتطابق تمامًا مع اسم علامة التبويب. قم بالتحديث "Data"، مع تضمين المسافات إن وجدت في علامة التبويب.
تظهر الصفوف في المصنف الخاطئ: يستخدم الكود ThisWorkbookملفًا يحتوي على الماكرو. خزّن الوحدة النمطية في المصنف الذي تنوي تعديله.
تُدرج هذه الأمثلة صفوفًا كاملة في ورقة العمل. إذا كانت البيانات عبارة عن جدول Excel وتريد إضافة سجل جدول، فاستخدم ListRows.Addطريقة الجدول بحيث ينتمي الإدخال الجديد إلى الجدول.