فبا: كيفية نسخ الخطوط المرئية إلى ورقة أخرى
يمكنك استخدام بناء الجملة التالي في VBA لنسخ الصفوف المرئية فقط من ورقة إلى أخرى:
SubCopyVisibleRows ()
Dim sourceWS As Worksheet
Dim destinationWS As Worksheet
Set sourceWS = ThisWorkbook.Sheets(" Sheet1 ")
Set destinationWS = ThisWorkbook.Sheets(" Sheet2 ")
sourceWS.Range(" A1:D999 ").SpecialCells(xlCellTypeVisible).Copy
destinationWS.Cells(1, 1).PasteSpecial
Application.CutCopyMode = False
End Sub
سيقوم هذا الماكرو المحدد بنسخ كل صف مرئي في النطاق A1:D999 من الورقة1 ولصقه بدءًا من الخلية A1 من الورقة2 .
ملاحظة : يحدد السطر Application.CutCopyMode = False أنه يجب تعطيل وضع القص والنسخ بعد تشغيل الماكرو.
يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا.
مثال: انسخ الصفوف المرئية إلى ورقة أخرى باستخدام VBA
لنفترض أن لدينا مجموعة البيانات التالية في الورقة 1 والتي تحتوي على معلومات حول العديد من لاعبي كرة السلة:
لنفترض الآن أننا قمنا بتطبيق عامل تصفية على مجموعة البيانات لإظهار الصفوف التي يساوي فيها اسم الفريق Mavs أو Spurs فقط:
لنفترض الآن أننا نريد استخدام VBA لنسخ الخلايا المرئية فقط من الورقة 1 إلى الورقة 2.
يمكننا إنشاء الماكرو التالي للقيام بذلك:
SubCopyVisibleRows ()
Dim sourceWS As Worksheet
Dim destinationWS As Worksheet
Set sourceWS = ThisWorkbook.Sheets(" Sheet1 ")
Set destinationWS = ThisWorkbook.Sheets(" Sheet2 ")
sourceWS.Range(" A1:D999 ").SpecialCells(xlCellTypeVisible).Copy
destinationWS.Cells(1, 1).PasteSpecial
Application.CutCopyMode = False
End Sub
عندما نقوم بتشغيل هذا الماكرو، نحصل على الإخراج التالي في الورقة 2 :
لاحظ أنه تم نسخ كل صف مرئي في الورقة1 ولصقه في الورقة2 .
ملاحظة رقم 1 : استخدمنا xlCellTypeVisible في الماكرو لتحديد أننا أردنا فقط نسخ الخلايا المرئية.
ملاحظة رقم 2 : يمكنك العثور على الوثائق الكاملة لطريقة نسخ VBA هنا .
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في VBA:
VBA: كيفية العثور على آخر سطر مستخدم
VBA: نسخ الصفوف إلى ورقة أخرى بناءً على المعايير
VBA: كيفية لصق القيم فقط بدون تنسيق