تقسيم صفحات ملف الاكسيل الى ملفات مستقله
إذا كان لديك
مصنف Excel يحتوي على العديد من أوراق العمل، فلا توجد طريقة سهلة لتقسيم كل
ورقة من هذه الأوراق إلى ملفات Excel منفصلة وحفظها بشكل منفصل.
قد يكون ذلك
ضروريًا عندما تقوم بإعداد أوراق لأشهر أو مناطق أو منتجات/عملاء مختلفة وتريد
الحصول بسرعة على مصنف منفصل لكل ورقة (كملف Excel أو كملفات PDF).
على الرغم من
وجود طريقة يدوية لتقسيم الأوراق إلى مصنفات منفصلة ثم حفظها، إلا أنها غير فعالة
وعرضة للأخطاء.
في هذا المقال التعليمي، سأقدم لك كود VBA بسيطًا يمكنك استخدامه لتقسيم جميع أوراق
العمل بسرعة (في بضع ثوانٍ) إلى ملفات منفصلة خاصة بها ثم حفظها في أي مجلد محدد.
تقسيم كل ورقة عمل إلى ملف Excel منفصل
لنفترض أن لديك
مصنفًا كما هو موضح أدناه حيث لديك ورقة عمل لكل شهر.
لتقسيم هذه
الأوراق إلى ملف Excel منفصل، يمكنك استخدام كود VBA أدناه:
Sub
SplitEachWorksheet()
Dim FPath As
String
FPath =
Application.ActiveWorkbook.Path
Application.ScreenUpdating
= False
Application.DisplayAlerts
= False
For Each ws In
ThisWorkbook.Sheets
ws.Copy
Application.ActiveWorkbook.SaveAs
Filename:=FPath & "\" & ws.Name & ".xlsx"
Application.ActiveWorkbook.Close False
Next
Application.DisplayAlerts
= True
Application.ScreenUpdating
= True
End Subهناك بعض الأشياء التي تحتاج إلى التأكد منها قبل استخدام كود VBA أعلاه:
قم بإنشاء مجلد
حيث تريد الحصول على كافة الملفات الناتجة.
احفظ ملف Excel الرئيسي (الذي يحتوي على
كافة أوراق العمل التي تريدها كملفات منفصلة) في هذا المجلد.
بمجرد الانتهاء
من ذلك، يمكنك وضع كود VBA أعلاه في الملف وتشغيل الكود.
تمت كتابة الكود
أعلاه بطريقة تلتقط موقع المجلد باستخدام مسار الملف (الذي يتم تشغيل الكود فيه).
ولهذا السبب من المهم حفظ الملف في المجلد أولاً ثم استخدام هذا الرمز.
كيف يعمل كود VBA - يستخدم الكود أعلاه
حلقة For Next البسيطة التي تمر عبر كل ورقة عمل، ويقوم بإنشاء نسخة من ورقة
العمل في مصنف Excel، ثم يحفظ مصنف Excel هذا في المجلد المحدد
(وهو نفس المجلد الذي يحتوي على الملف الرئيسي مع كافة الأوراق).
فيما يلي خطوات
وضع رمز VBA هذا في مصنف Excel (ستكون هذه هي نفسها
بالنسبة لجميع الطرق الأخرى الموضحة في هذا البرنامج التعليمي):
أين تضع هذا الكود؟
فيما يلي خطوات
وضع التعليمات البرمجية في محرر Visual
Basic حيث يمكن تنفيذها:
انقر فوق علامة
التبويب المطور.
في مجموعة
التعليمات البرمجية، انقر فوق خيار Visual
Basic. سيؤدي هذا إلى فتح محرر VB. [يمكنك أيضًا استخدام
اختصار لوحة المفاتيح – ALT + F11]
في محرر VB، انقر بزر الماوس الأيمن
على أي من كائنات المصنف الذي تعمل عليه.
حرك المؤشر فوق خيار الإدراج
انقر على الوحدة
النمطية. سيؤدي هذا إلى إدراج وحدة نمطية جديدة
انقر نقرًا مزدوجًا فوق كائن الوحدة النمطية. سيؤدي هذا إلى فتح نافذة التعليمات البرمجية للوحدة
انسخ كود VBA المتوفر أعلاه والصقه في
نافذة كود الوحدة النمطية. انسخ الكود والصقه في نافذة الوحدة النمطية
حدد أي سطر في
الكود وانقر على زر التشغيل الأخضر في شريط الأدوات لتشغيل كود ماكرو VBA.
ستؤدي الخطوات
المذكورة أعلاه إلى تقسيم أوراق العمل على الفور إلى ملفات Excel منفصلة وحفظها. لن يستغرق
الأمر سوى ثانية واحدة إذا كان لديك عدد أقل من أوراق العمل. إذا كان لديك الكثير،
فقد يستغرق الأمر بعض الوقت.
اسم كل ملف
محفوظ هو نفس اسم الورقة الموجودة في الملف الرئيسي.
نظرًا لأنك قمت
بوضع رمز VBA في مصنف Excel، فأنت بحاجة إلى حفظه
بتنسيق .XLSM (وهو التنسيق الممكّن للماكرو). سيضمن هذا
حفظ الماكرو وتشغيله عند فتح هذا الملف بعد ذلك.
لاحظ أنني
استخدمت السطور Application.ScreenUpdating
= False و Application.DisplayAlerts = False في الكود بحيث يحدث كل شيء في الواجهة الخلفية ولا ترى أشياء تحدث
على شاشتك. بمجرد تشغيل الكود وتقسيم الأوراق وحفظها، نعيدها مرة أخرى إلى TRUE.
كأفضل
الممارسات، يوصى بإنشاء نسخة احتياطية من الملف الرئيسي (الذي يحتوي على الأوراق
التي تريد تقسيمها). سيضمن ذلك عدم فقدان بياناتك في حالة حدوث أي خطأ أو إذا قرر Excel أن يصبح بطيئًا أو يتعطل.