كيفية نسخ ونقل ورقة باستخدام vba؟
يمكنك نسخ ورقة ونقلها في Excel باستخدام كود VBA، وفي هذا البرنامج التعليمي سوف نتعلم طرقًا مختلفة للقيام بذلك.
انسخ ورقة في نفس المصنف
إذا كنت تريد نسخ ورقة في نفس المصنف، فيمكنك استخدام التعليمة البرمجية التالية حيث استخدمت طريقة النسخ.
Sheets("Sheet5").Copy Before:=Sheets(1)
في هذا الرمز، الورقة 1 هي الورقة الأولى من المصنف، وعند تشغيل هذا الرمز، تقوم بنسخ الورقة التي تحمل الاسم “الورقة 5” قبل الورقة الأولى من المصنف.
وإذا أردت نسخه بعد الورقة الأولى فسيكون الكود كالتالي.
Sheets("Sheet5").Copy After:=Sheets(1)
وإذا أردت نسخه بعد الورقة الأولى فسيكون الكود كالتالي.
Sheets("Sheet5").Copy Before:=Sheets("Sheet3") Sheets("Sheet5").Copy After:=Sheets("Sheet3")
عند تشغيل رمز VBA هذا، فإنه ينسخ “الورقة5” قبل وبعد “الورقة3”.
باستخدام السطر التالي من التعليمات البرمجية، يمكنك نسخ ورقة بعد الورقة الأخيرة من المصنف. فهو يستخدم عدد الأوراق للحصول على عدد الأوراق، ثم يستخدم العدد لنسخ الورقة أخيرًا.
Sheets("myNewSheet").Move After:=Sheets(Sheets.Count)
روابط مفيدة: تشغيل ماكرو – مسجل الماكرو – محرر Visual Basic – دليل وحدات الماكرو الشخصية
انسخ ورقة في نفس المصنف باسم جديد
وإذا كنت تريد نسخ ورقة ثم إعادة تسميتها على الفور، فستحتاج إلى استخدام خاصية الاسم، تمامًا مثل الكود التالي.
Sheets("Sheet5").Move Before:=Sheets(1) ActiveSheet.Name = "myNewSheet"
نقل ورقة في نفس المصنف
لنقل ورقة في نفس المصنف، تحتاج إلى استخدام أسلوب النقل كما هو الحال في التعليمة البرمجية التالية.
Sheets("Sheet5").Move After:=Sheets(1)
سيعمل هذا الرمز على نقل “Sheet5” قبل “Sheet2” كما ترون في اللقطة أعلاه.
انسخ ورقة إلى المصنف الجديد
عند استخدام أسلوب النسخ دون تحديد ورقة في المصنف الحالي، يفتح VBA مصنفًا جديدًا وينسخ تلك الورقة إلى هذا المصنف.
Sheets("Sheet5").Copy
ولنقل ورقة إلى مصنف جديد.
Sheets("Sheet5").Move
انسخ أوراق متعددة إلى المصنف الجديد
إذا كنت تريد إضافة أوراق متعددة إلى المصنف الجديد مرة واحدة، فاستخدم التعليمات البرمجية مثل هذا.
Sheets(Array("Sheet2", "Sheet3", "Sheet4", "Sheet5")).Copy
يقوم الكود أعلاه بإنشاء مجموعة من الأوراق ثم ينسخها كلها في مصنف جديد.
انسخ ورقة إلى مصنف آخر
إذا كنت تريد نسخ ورقة إلى مصنف آخر مفتوح بالفعل، فيمكنك ذكر اسم المصنف بعد الوسيطة أو قبلها.
Sheets("Sheet1").Copy Before:=Workbooks("Book1.xlsx").Sheets(1)
يقوم التعليمة البرمجية أعلاه بنسخ الورقة1 من المصنف النشط وإضافتها قبل الورقة الأولى من Book1.xlsx المفتوحة بالفعل.
وإذا كنت تريد نقله.
Sheets("Sheet1").Move Before:=Workbooks("Book1.xlsx").Sheets(1)
انسخ ورقة إلى مصنف مغلق
توجد طريقة لنسخ ورقة إلى مصنف مغلق ولا تحتاج إلى فتحها. انظر إلى الكود أدناه.
Sub vba_copy_sheet() Dim mybook As Workbook Application.ScreenUpdating = False Set mybook = _ Workbooks.Open _ ("C:UsersDellDesktopsamplefile.xlsx") Workbooks("Book1.xlsx").Sheets("Sheet2").Copy Before:=mybook.Sheets(1) mybook.Close SaveChanges:=True Application.ScreenUpdating = True End Sub
في هذا الكود، لديك متغير myBook ثم مصنف مخصص له. لقد قمنا بتعطيل تحديث الشاشة حتى يتمكن الكود من أداء المهمة في الواجهة الخلفية.
انسخ ورقة من مصنف آخر دون فتحها
وبنفس الطريقة، يمكنك نسخ ورقة ونقلها من مصنف مغلق. انظر إلى الكود أدناه.
Sub vba_copy_sheet() Dim mybook As Workbook Application.ScreenUpdating = False Set mybook = _ Workbooks.Open _ ("C:UsersDellDesktopsamplefile.xlsx") mybook.Sheets("mySheet").Copy Before:=Workbooks("Book1.xlsx").Sheets(1) mybook.Close SaveChanges:=True Application.ScreenUpdating = True End Sub
الدروس ذات الصلة
- مسح ورقة كاملة باستخدام VBA في Excel
- COUNT من الأوراق باستخدام VBA في Excel
- حذف ورقة باستخدام VBA في Excel
- إخفاء وإظهار ورقة باستخدام VBA في Excel
- حماية وإلغاء حماية ورقة باستخدام VBA في Excel