جدول المحتويات
يوفر البرنامج التعليمي مجموعة من وحدات الماكرو لتكرار الأوراق في Excel: نسخ وإعادة تسمية بناءً على قيمة الخلية ، ونسخ أوراق متعددة ، ونسخ ورقة عمل نشطة إلى ملف آخر دون فتحه ، والمزيد.
يعد نسخ الأوراق يدويًا في Excel سريعًا ومباشرًا جدًا ... إذا تم إجراؤه مرة أو مرتين فقط. يعد تكرار أوراق متعددة عدة مرات أمرًا مملًا ويستغرق وقتًا طويلاً. في هذه الصفحة ، ستجد عددًا قليلاً من وحدات الماكرو المفيدة لأتمتة هذه المهمة.
Excel VBA لنسخ الورقة إلى مصنف جديد
يعمل هذا الماكرو الأبسط المكون من سطر واحد بالضبط ما يوحي به اسمها - نسخ الورقة النشطة إلى مصنف جديد.
انسخ أوراق متعددة في Excel باستخدام VBA
إذا كنت ترغب في ذلك انسخ عدة أوراق من المصنف النشط إلى واحد جديد ، وحدد جميع أوراق العمل المهمة وقم بتشغيل هذا الماكرو:
Public Sub CopySelectedSheets () ActiveWindow.SelectedSheets.Copy End SubExcel VBA لنسخ الورقة إلى مصنف آخر
بناءً على المكان الذي تريد إدراج الورقة المنسوخة فيه ، استخدم أحد وحدات الماكرو التالية.
نسخ الورقة إلى بداية مصنف آخر
ينسخ هذا الماكرو الورقة النشطة من قبل جميع أوراق العمل الأخرى في الملف الوجهة ، Book1 في هذا المثال. للنسخ إلى ملف آخر ، استبدل "Book1.xlsx" بالاسم الكامل لمصنفك الهدف.
Public SubCopySheetToBeginningAnotherWorkbook () activeSheet.Copy Before: = Workbooks ("Book1.xlsx") .Sheets (1) End Subنسخ الورقة إلى نهاية مصنف آخر
هذا الجزء من التعليمات البرمجية يكرر ورقة العمل النشطة و يضع النسخة في نهاية Book1 . مرة أخرى ، يرجى تذكر استبدال "Book1.xlsx" باسم المصنف الوجهة الخاص بك.
Public Sub CopySheetToEndAnotherWorkbook () activeSheet.Copy After: = Workbooks ("Book1.xlsx") .Sheets (Workbooks ("Book1.xlsx) ") .Worksheets.Count) End Subملاحظة. لكي تعمل وحدات الماكرو ، يجب حفظ المصنف الهدف على محرك الأقراص الثابتة أو الشبكة.
نسخ الورقة إلى مصنف محدد
لتتمكن من نسخ الورقة الحالية إلى أي مصنف مفتوح ، يمكنك إنشاء UserForm (يسمى UserForm1 ) مع عنصر تحكم ListBox ( يسمى ListBox1 ) وزرين:
بعد ذلك ، انقر نقرًا مزدوجًا فوق النموذج والصق الرمز أدناه في نافذة التعليمات البرمجية:
Public SelectedWorkbook As String Private Sub UserForm_Initialize () SelectedWorkbook = "" ListBox1.Clear For each wbk In Application.Workbooks ListBox1.AddItem (wbk.Name) Next End Sub Private Sub CommandButton1_Click () If ListBox1.ListIndex & gt؛ -1 ثم SelectedWorkbook = ListBox1.List (ListBox1.ListIndex) End If Me.Hide End Sub Private Sub CommandButton2_Click () SelectedWorkbook = "" Me.Hide End Subمع وضع UserForm في مكانه ، يمكنك استخدام أحد الخيارات التالية وحدات الماكرو لنسخ ملفالورقة النشطة إلى المصنف الذي تختاره.
نسخ الورقة إلى بداية المصنف المحدد :
Public Sub CopySheetToBeginningAnotherWorkbook () تحميل UserForm1 UserForm1.Show If (UserForm1.SelectedWorkbook " ") ثم activeSheet.Copy Before: = Workbooks (UserForm1.SelectedWorkbook) .Sheets (1) End If Unload UserForm1 End Subنسخ الورقة إلى نهاية المصنف المحدد :
Public Sub CopySheetToEndAnotherWorkbook () تحميل UserForm1 UserForm1.Show If (UserForm1.SelectedWorkbook "") ثم activeSheet.Copy After: = Workbooks (_ UserForm1.SelectedWorkbook). Sheets (_ Workbooks (UserForm1.SelectedWorkbook). _ Endheets.Count). End Subعند تشغيله في Excel ، سيعرض لك الماكرو قائمة بجميع المصنفات المفتوحة حاليًا. يمكنك تحديد الملف المطلوب والنقر فوق موافق:
ماكرو Excel لنسخ الورقة وإعادة تسميتها
عند نسخ ورقة في Excel ، يتم إعطاء النسخة المتماثلة الاسم بالتنسيق الافتراضي مثل الورقة 1 (2) . يمكن أن توفر لك وحدات الماكرو التالية مشكلة تغيير الاسم الافتراضي يدويًا.
هذا الرمز يكرر ورقة العمل النشطة ، ويطلق على النسخة اسم "Test Sheet" (يمكنك استبدالها بأي اسم آخر تريده) ، ويضع الورقة المنسوخة في نهاية المصنف الحالي.
Public Sub CopySheetAndRenamePredefined () activeSheet.Copy After: = أوراق العمل (Sheets.Count) عند الخطأ ، استئناف التالي activeSheet.Name ="Test Sheet" End Subللسماح للمستخدم بتحديد اسم الورقة المنسوخة ، استخدم هذا الرمز:
Public Sub CopySheetAndRename () Dim newName كسلسلة عند الخطأ ، استئناف التالي newName = InputBox ("أدخل اسم ورقة العمل المنسوخة") If newName "" ثم activeSheet.Copy بعد: = أوراق العمل (Sheets.Count) عند الخطأ ، استئناف التالي activeSheet.Name = newName End If End Subعند التشغيل ، الماكرو يعرض مربع الإدخال التالي ، الذي تكتب فيه الاسم المطلوب واضغط على موافق:
ماكرو Excel لنسخ الورقة وإعادة التسمية بناءً على قيمة الخلية
في في بعض الحالات ، قد يكون من الأنسب تسمية نسخة بقيمة خلية محددة ، على سبيل المثال ، رأس العمود. لهذا ، يمكنك ببساطة أخذ الكود أعلاه وتوفير قيمة الخلية المحددة حاليًا إلى مربع الإدخال تلقائيًا. كما هو الحال مع المثال السابق ، سيتم وضع النسخة في نهاية المصنف النشط.
سيكون أصعب جزء هو أن يقوم المستخدمون دائمًا بتحديد الخلية الصحيحة قبل التشغيل الماكرو :)
Public Sub CopySheetAndRenameByCell () Dim newName كسلسلة عند الخطأ استئناف التالي newName = InputBox ("أدخل اسم ورقة العمل المنسوخة" ، "نسخ ورقة العمل" ، ActiveCell.Value) If newName "" ثم activeSheet. نسخ بعد: = أوراق العمل (Sheets.Count) عند الخطأ ، استئناف التالي activeSheet.Name = newName End If End Subبدلاً من ذلك ، يمكنك ترميز عنوانالخلية التي يجب تسمية النسخة بها ، الخلية A1 في الكود أدناه. لتسمية ورقة العمل المنسوخة بناءً على خلية أخرى ، استبدل A1 بمرجع خلية مناسب.
Public Sub CopySheetAndRenameByCell2 () Dim wks As Worksheet Set wks = activeSheet activeSheet.Copy After: = Worksheets (Sheets.Count) If wks.Range ("A1") .Value "" ثم عند الخطأ ، استأنف التالي activeSheet.Name = wks.Range ("A1") .Value End If wks.Activate End SubMacro لنسخ ورقة العمل إلى مصنف مغلق
يقوم هذا الماكرو بنسخ الورقة النشطة إلى نهاية المصنف المغلق. لم يتم تحديد اسم مصنف آخر في الكود - سيفتح الماكرو نافذة مستكشف Windows القياسية ويسمح لك باختيار أي ملف وجهة:
بعد تحديد الملف ثم انقر فوق فتح ، سيقوم الماكرو بنسخ الورقة النشطة وإغلاق المصنف الهدف تلقائيًا.
Public Sub CopySheetToClosedWorkbook () Dim fileName خافت اسم الملف مغلق باسم مصنف Dim currentSheet As Worksheet fileName = Application.GetOpenFilename ("Excel الملفات (* .xlsx) ، * .xlsx ") If fileName False ثم Application.ScreenUpdating = False Set currentSheet = Application.activeSheet Set ClosedBook = Workbooks. افتح (اسم الملف) currentSheet.Copy بعد: = closedBook.Sheets (closedBook.Worksheets.Count) مغلق. إغلاق (صواب) Application.ScreenUpdating = True End If End SubExcel VBA لنسخ الورقة من مصنف آخر بدونفتح
يمكّنك هذا الماكرو من نسخ ورقة عمل من ملف Excel آخر دون فتحه. سيتم إدراج الورقة المنسوخة في نهاية المصنف الحالي.
فقط تذكر أن تقوم ببعض الاستبدالات في الكود:
- C: \ Users \ XXX \ Documents \ يجب تغيير Target_Book.xlsx إلى المسار الفعلي واسم المصنف الذي تريد نسخ ورقة منه. يجب استبدال
- Sheet1 باسم الورقة التي تريد نسخها.
Excel VBA لتكرار الورقة عدة مرات
في بعض الأحيان ، قد تحتاج إلى تكرار نفس الورقة أكثر من مرة ، على سبيل المثال لاختبار صيغ مختلفة على نفس مجموعة البيانات. يمكن القيام بذلك بسهولة باستخدام الماكرو التالي.
Public Sub DuplicateSheetMultipleTimes () Dim n As Integer On Error Resume Next n = InputBox ("كم عدد نسخ الورقة النشطة التي تريد إجراؤها؟") If n & gt؛ = 1 ثم لعدد مرات = 1 إلى n activeSheet.Copy After: = ActiveWorkbook.Sheets (Worksheets.Count) Next End If End Subافتح الورقة الأصلية ، قم بتشغيل الماكرو ، وحدد عدد نسخ الورقة النشطةتريد إنشاء ، وانقر فوق موافق :
كيفية تكرار الأوراق في Excel باستخدام VBA
لنسخ ورقة في Excel باستخدام أحد وحدات الماكرو المذكورة أعلاه ، يمكنك إما إدراج رمز VBA في كتابك الخاص أو تشغيل ماكرو من نموذج المصنف الخاص بنا.
كيفية إضافة ماكرو إلى المصنف الخاص بك
لإدراج التعليمات البرمجية في المصنف الخاص بك ، نفذ الخطوات التالية:
- افتح ورقة العمل التي تريد نسخها.
- اضغط على Alt + F11 لفتح محرر Visual Basic.
- تشغيل في الجزء الأيمن ، انقر بزر الماوس الأيمن فوق ThisWorkbook ، ثم انقر فوق إدراج & gt؛ الوحدة النمطية .
- الصق الكود في نافذة التعليمات البرمجية.
- اضغط F5 لتشغيل الماكرو.
للحصول على إرشادات مفصلة خطوة بخطوة ، يرجى الاطلاع على كيفية إدراج رمز VBA في Excel.
كيفية التشغيل ماكرو من نموذج المصنف الخاص بنا
بدلاً من ذلك ، يمكنك تنزيل نموذج المصنف الخاص بنا إلى تكرار أوراق Excel وتشغيل التعليمات البرمجية من هناك.
يحتوي نموذج المصنف على وحدات الماكرو التالية:
CopySheetToNewWorkbook - ينسخ cu إعادة ورقة العمل إلى مصنف جديد.
CopySelectedSheets - نسخ أوراق متعددة تحددها إلى مصنف جديد.
CopySheetToBeginningAnotherWorkbook - نسخ الورقة النشطة إلى بداية مصنف آخر.
CopySheetToEndAnotherWorkbook - نسخ الورقة النشطة إلى نهاية ملف Excel آخر.
CopySheetAndRename - يكرر الحالي ملزمة،يعيد تسميته كما هو محدد من قبل المستخدم ، ويضع النسخة بعد كل الأوراق الأخرى في المصنف الحالي.
CopySheetAndRenamePredefined - يكرر الورقة النشطة ، ويعطي اسمًا مشفرًا للنسخة ويضعها في نهاية المصنف الحالي.
CopySheetAndRenameByCell - يقوم بعمل نسخة من الورقة النشطة ويعيد تسميتها بناءً على قيمة الخلية المحددة.
CopySheetAndRenameByCell2 - نسخ الورقة النشطة وإعادة تسميتها بناءً على عنوان الخلية المشفر.
CopySheetToClosedWorkbook - يسمح لك بنسخ الورقة إلى مصنف مغلق.
CopySheetFromClosedWorkbook - يمكنك من نسخ ورقة من ملف Excel آخر دون فتحه.
DuplicateSheetMultipleTimes - يتيح لك تكرار ورقة في Excel عدة مرات.
إلى قم بتشغيل الماكرو في Excel ، فقط قم بما يلي:
- افتح المصنف الذي تم تنزيله وقم بتمكين المحتوى إذا طُلب منك ذلك.
- افتح المصنف الخاص بك وانتقل إلى الورقة التي تريدها نسخ. <1 7> في ورقة العمل الخاصة بك ، اضغط على Alt + F8 ، وحدد الماكرو الذي تريده ، وانقر فوق تشغيل .
هذه هي الطريقة التي يمكنك بها التكرار ورقة في Excel مع VBA. أشكركم على القراءة وآمل أن أراكم على مدونتنا الأسبوع المقبل!