كيفية نسخ ونقل ورقة باستخدام 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”.

كود vba إذا كنت تريد نسخه بعد الورقة الأولى

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

 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
ما هو فبا

الدروس ذات الصلة

اضف تعليق

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *