إجمالي مرات مشاهدة الصفحة

الثلاثاء، 3 مايو 2016

انشطار أوراق العمل إلى مصنفات منفصلة Split Worksheets Into Multiple Workbooks

السلام عليكم ورحمة الله وبركاته

أقدم لكم كود يقوم بإنشاء مصنف منفصل لكل ورقة عمل في نفس مسار المصنف الحالي

بفرض أن لديك أربعة أوراق عمل ( الأول Main - الثاني Data - الثالث Search - الرابع Result) ، وبعض أوراق العمل يحتوي على معادلات ، والبعض يحتوي على أكواد في حدث المصنف
والمطلوب تصدير كل ورقة عمل إلى مصنف جديد وتحويل المعادلات إلى قيم ، والتخلص من الأكواد الموجودة في حدث ورقة العمل

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

وأخيراً إليكم الكود الذي يؤدي هذه المهمة

Sub Split_Workbook()
    Dim xPath As String
    Dim Sh As Worksheet
    Dim strName As String
    
    xPath = Application.ActiveWorkbook.Path

    Application.ScreenUpdating = False
    Application.EnableEvents = False
    Application.DisplayAlerts = False
        For Each Sh In ThisWorkbook.Worksheets
            Sh.Copy
            ActiveWorkbook.ActiveSheet.UsedRange.Value = ActiveWorkbook.ActiveSheet.UsedRange.Value
            
            strName = Sh.CodeName
            With ActiveWorkbook.VBProject.VBComponents(strName).CodeModule
                .DeleteLines 1, .CountOfLines
            End With
            
            Application.ActiveWorkbook.SaveAs Filename:=xPath & "\" & Sh.Name & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
            Application.ActiveWorkbook.Close False
        Next Sh
    Application.DisplayAlerts = True
    Application.EnableEvents = True
    Application.ScreenUpdating = True
End Sub

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

إعداد / ياسر خليل أبو البراء

هناك تعليقان (2):