يعد Excel VBA جزءًا لا يتجزأ من أتمتة Excel ، ولا يمكن تقويض استخدام VBA وفوائده. إذا كنت في معركة شاقة تحاول دمج أوراق ومصنفات متعددة في Excel ، فنحن هنا للمساعدة.

ستساعدك وحدات الماكرو المذكورة في هذا الدليل على إنجاز المهمة التي تبدو مستعصية في غضون ثوانٍ (أو دقائق ، إذا كانت أصول البيانات كبيرة).

باتباع هذا البرنامج التعليمي ، ستقوم بإنشاء ماكرو VBA الخاص بك في Excel ودمج أوراق متعددة بكفاءة في ملف واحد.

دمج أوراق إكسل متعددة في ملف واحد

لهذه المهمة ، يتم تخزين البيانات في الأوراق التالية:

  • الورقة 1
  • ورقة 2
  • ورقة 3

أسماء الأوراق المذكورة أعلاه هي لأغراض التوضيح فقط. ماكرو VBA عام ولا يعتمد على أسماء الأوراق ؛ يمكنك تخصيص الكود لاستخدامه مع أي اسم (أسماء) للورقة.

المتطلبات المسبقة لتشغيل الكود

هناك بعض المتطلبات الأساسية لتشغيل رمز VBA المدرج أدناه.

تحتاج إلى تخزين كود الماكرو في ملف Excel جديد. احفظ هذا المصنف بملحق .xlsm إطالة. يمكنك حفظ مصنف الماكرو VBA بأي اسم.

افتح ملف Excel جديدًا ؛ صحافة Alt + F11 على لوحة المفاتيح لفتح محرر Excel VBA. بمجرد فتح المحرر ، أضف وحدة تعليمات برمجية جديدة بالنقر فوق

instagram viewer
إدراج علامة التبويب في الأعلى. يختار وحدة لإدراج وحدة جديدة ؛ هذا هو المكان الذي ستدخل فيه رمز الماكرو VBA الموضح أدناه.

يجب أن تكون أوراق البيانات المراد دمجها في مصنف منفصل آخر تمامًا. يمكن أن يكون اسم المصنف والأوراق أيًا ما تختاره.

بمجرد تنفيذ التعليمات البرمجية لـ VBA ، سوف يتنقل ماكرو VBA عبر كل ورقة عمل متوفرة في ملف المصنف الأساسي (مصنف البيانات) ولصق المحتويات في ورقة مضافة حديثًا داخل نفس المصنف دفتر العمل.

ستكون البيانات المدمجة متاحة في الورقة المسماة موحّد.

تشغيل كود فبا

حان الوقت لتشغيل شفرة الماكرو المحفوظة حديثًا. انسخ هذا الرمز والصقه في الوحدة النمطية لمحرر VBA:

subcomment_shts ()
أعلن عن المتغيرات المختلفة المستخدمة في التعليمات البرمجية وأنواع بيانات vba
Dim sht As Worksheet، sht1 As Worksheet، lastrow As Integer، lastrow1 As Integer
تعطيل وميض الشاشة والنوافذ المنبثقة أثناء التنفيذ
مع التطبيق
.ScreenUpdating = خطأ
.DisplayAlerts = خطأ
انتهت ب
تخزين اسم المصنف الأساسي في متغير الماكرو. استبدل Test.xlsx باسم المصنف الأساسي
تعيين wbk1 = المصنفات ("Test.xlsx")
قم بتنشيط المصنف قبل أداء الوظيفة (الوظائف) عليه
wbk1.Activate
قم بتشغيل vba for loop للتحقق مما إذا كانت الورقة الموحدة موجودة بالفعل. إذا كانت موجودة ، فإن الحلقة for ستحذفها.
لكل sht في wbk1.Sheets
إذا sht. الاسم = "الموحدة" ثم sht. حذف
التالي sht
أضف ورقة جديدة لتخزين البيانات المدمجة حديثًا
أوراق عمل. يضيف. الاسم = "موحد"
أضف بعض الرؤوس إلى كل عمود فردي داخل الورقة المدمجة
مع الأوراق ("الموحدة")
.Range ("a1"). القيمة = "تاريخ الطلب"
.Range ("b1"). القيمة = "المنطقة"
.Range ("c1"). القيمة = "Rep"
.Range ("d1"). القيمة = "العنصر"
.Range ("e1"). القيمة = "الوحدات"
.Range ("f1"). القيمة = "UnitCost"
.Range ("g1"). القيمة = "الإجمالي"

انتهت ب
ستحتفظ الورقة المدمجة التي تم إنشاؤها حديثًا بالبيانات المدمجة من كل ورقة فردية في المصنف الأساسي

بالنسبة إلى i = 1 إلى wbk1. عدد
If Sheets (i) .Name <> "Consolidated" ثم
التقط آخر صف مملوء من أوراق البيانات في المصنف
lastrow = Sheets (i) .Range ("a1"). End (xlDown) .Row
التقط آخر صف مأهول في الورقة الموحدة
lastrow1 = wbk1.Sheets ("Consolidated"). Range ("a1048576"). End (xlUp) .Row + 1

انسخ البيانات من الورقة المصدر والصقها في الورقة المدمجة
Sheets (i) .Range ("a2: g" & lastrow). وجهة النسخ: = Sheets ("Consolidated"). Range ("a" & lastrow1)
إنهاء إذا
بعدها انا
تمكين وظائف Excel VBA للاستخدام في المستقبل
مع التطبيق
.ScreenUpdating = صحيح
.DisplayAlerts = صحيح
انتهت ب

End Sub

شرح قانون VBA

أولاً ، قم بتعريف جميع المتغيرات التي تستخدمها داخل الكود وقم بتعيينها بأنواع بيانات VBA الصحيحة لجعل الكود يعمل بسلاسة.

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

في الخطوة التالية ، تحتاج إلى تحديد اسم المصنف الذي يحتوي على كافة البيانات الخاصة بك. يحل محل Test.xlsx باسم وامتداد اسم المصنف الخاص بك. تأكد من إحاطة الاسم بعلامات اقتباس.

قم بتنشيط المصنف الأساسي وحذف أي أوراق موجودة بالاسم موحّد لإزالة أي بيانات مخزنة مسبقًا. يقوم رمز VBA بالتبديل خلال كل ورقة ، وبمجرد أن يواجه اسم الورقة موحّد سوف تحذفه. يتم ذلك باستخدام ملف بيان VBA IF، والذي يتحقق من الشروط المنطقية ويحذف الورقة بمجرد استيفاء الشرط.

تتم إضافة ورقة جديدة إلى المصنف الأساسي لتخزين البيانات المدمجة. بعد ذلك ، تتم إضافة رؤوس قياسية مسبقة التنسيق إلى هذه الورقة. يمكنك تغيير قيم العناوين (رؤوس الأعمدة) عن طريق تحديث المعلومات الموجودة بجوار مراجع الخلايا داخل علامات الاقتباس.

فمثلا: .Range ("a1") = "تاريخ الطلب" يمكن استبداله بـ .Range ("a1") = "رقم الطلب"

بعد ذلك ، تقوم حلقة VBA FOR بالتبديل خلال كل ورقة عمل ، ونسخ محتويات الورقة ، ولصق المحتويات في موحّد ورقة العمل قبل الانتقال إلى الورقة التالية في المصنف. تتكرر هذه العملية حتى يتم نسخ جميع الأوراق.

أثناء هذه العملية ، يتم حساب جميع الصفوف تلقائيًا ولصقها في الورقة الموحدة. يتم احتساب آخر صف تم ملؤه تلقائيًا قبل لصق البيانات فيه. الماكرو ديناميكي ويمكن ضبطه على صفوف بيانات مختلفة داخل كل ورقة عمل.

متعلق ب: ميزات Microsoft Excel المتقدمة التي يجب أن تعرفها

بمجرد لصق البيانات من جميع الأوراق في ورقة الدمج الرئيسية ، ينتقل الماكرو إلى الجزء الأخير من الكود. يتم تمكين وظائف VBA المعطلة في البداية مرة أخرى للاستخدام في المستقبل.

دمج أوراق متعددة باستخدام Excel VBA Macro

تعد Excel VBA لغة برمجة غير ضرورية ، وتعمل بشكل جيد مع جميع مكونات Excel. يعد كل جزء من التعليمات البرمجية ضروريًا ، ومن المهم أن تتذكر أن التنفيذ يعتمد على نظام تنفيذ سطر بسطر ، لذلك لا يجب تغيير ترتيب سطور التعليمات البرمجية.

لتخصيص الكود لمتطلباتك ، يمكنك إجراء التغييرات المطلوبة وتشغيل هذا الرمز لدمج البيانات بكفاءة وفعالية في ثوانٍ.

5 وحدات ماكرو Microsoft Excel رائعة لفرز البيانات

اجعل إدارة البيانات في غاية السهولة باستخدام وحدات ماكرو Excel هذه.

اقرأ التالي

شاركسقسقةبريد الالكتروني
مواضيع ذات صلة
  • برمجة
  • مايكروسوفت اكسل
  • وحدات ماكرو
  • برمجة
عن المؤلف
غوراف سيال (تم نشر 21 مقالة)

يتمتع Gaurav Siyal بخبرة عامين في الكتابة ، ويكتب لسلسلة من شركات التسويق الرقمي ووثائق دورة حياة البرامج.

المزيد من Gaurav Siyal

اشترك في نشرتنا الإخبارية

انضم إلى النشرة الإخبارية لدينا للحصول على نصائح تقنية ومراجعات وكتب إلكترونية مجانية وصفقات حصرية!

انقر هنا للاشتراك