فبا: كيفية نسخ نطاق إلى ورقة أخرى
يمكنك استخدام بناء الجملة التالي في VBA لنسخ نطاق من الخلايا إلى ورقة أخرى:
Sub CopyRangeToSheet()
Worksheets(" Sheet1 ").Range(" A1:C11 ").Copy
Worksheets(" Sheet2 ").Range(" A1 ").PasteSpecial
Application.CutCopyMode = False
End Sub
سيقوم هذا الماكرو المحدد بنسخ الخلايا الموجودة في النطاق A1:C11 من الورقة1 ولصقها في النطاق بدءًا من الخلية A1 من الورقة2 .
ملاحظة : يحدد السطر Application.CutCopyMode = False أنه يجب تعطيل وضع القص والنسخ بعد تنفيذ الماكرو.
يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا.
مثال: نسخ النطاق إلى ورقة أخرى باستخدام VBA
لنفترض أن لدينا مجموعة البيانات التالية في ورقة تسمى Sheet1 في Excel والتي تحتوي على معلومات حول العديد من لاعبي كرة السلة:
لنفترض أن لدينا أيضًا ورقة أخرى تسمى Sheet2 وهي فارغة حاليًا:
لنفترض أننا نريد نسخ كافة القيم الموجودة في النطاق A1:C11 من الورقة1 ولصقها بدءًا من الخلية A1 من الورقة2 .
يمكننا إنشاء الماكرو التالي للقيام بذلك:
Sub CopyRangeToSheet()
Worksheets(" Sheet1 ").Range(" A1:C11 ").Copy
Worksheets(" Sheet2 ").Range(" A1 ").PasteSpecial
Application.CutCopyMode = False
End Sub
عندما نقوم بتشغيل هذا الماكرو، نحصل على الإخراج التالي في الورقة 2 :
لاحظ أنه تم نسخ كافة القيم الموجودة في النطاق A1:C11 من الورقة1 إلى الورقة2 من الخلية A1 .
افتراضيًا، يتم لصق القيم بتنسيق مصدرها.
على سبيل المثال، تكون قيم صف الرأس غامقة.
إذا كنت تريد لصق القيم فقط دون تنسيق المصدر، فيمكنك تحديد Paste:=xlPasteValues كما يلي:
Sub CopyRangeToSheet()
Worksheets(" Sheet1 ").Range(" A1:C11 ").Copy
Worksheets(" Sheet2 ").Range(" A1 ").PasteSpecial Paste=xlPasteValues
Application.CutCopyMode = False
End Sub
عندما نقوم بتشغيل هذا الماكرو، نحصل على الإخراج التالي في الورقة 2 :
لاحظ أنه تم نسخ القيم فقط (بدون تنسيق) من النطاق A1:C11 للورقة 1 إلى الورقة2 .
ملاحظة : يمكنك العثور على الوثائق الكاملة لأسلوب VBA PasteSpecial هنا .
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في VBA:
VBA: كيفية لصق القيم فقط بدون تنسيق
فبا: كيفية نسخ الخطوط المرئية إلى ورقة أخرى
VBA: نسخ الصفوف إلى ورقة أخرى بناءً على المعايير