JavaScript is not enabled!...Please enable javascript in your browser

جافا سكريبت غير ممكن! ... الرجاء تفعيل الجافا سكريبت في متصفحك.

-->
الصفحة الرئيسية

تقسيم صفحات ملف الاكسيل الى ملفات مستقله vba Split Each Excel Sheet

 

تقسيم صفحات ملف الاكسيل الى ملفات مستقله

 


إذا كان لديك مصنف 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 أن يصبح بطيئًا أو يتعطل.


لتحميل ملف العمل من هنا

الاسمبريد إلكترونيرسالة