كيفية تبديل نطاق في vba (مع مثال)
يمكنك استخدام بناء الجملة الأساسي التالي لتبديل نطاق باستخدام VBA:
SubTransposeRange ()
'specify range to transpose
MyRange = Range(" A1:B5 ")
'find dimensions of range
XUpper = UBound(MyRange, 1)
XLower = LBound(MyRange, 1)
YUpper = UBound(MyRange, 2)
YLower = LBound(MyRange, 2)
'transpose range
Range(" D1 ").Resize(YUpper - YLower + 1, XUpper - XLower + 1).Value = _
WorksheetFunction.Transpose(MyRange)
End Sub
سيقوم هذا المثال المحدد بتبديل موضع الخلايا الموجودة في النطاق A1:B5 وسيعرض النطاق المنقول بدءًا من الخلية D1 .
يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا.
مثال: كيفية تبديل نطاق في VBA
لنفترض أن لدينا مجموعة البيانات التالية في Excel والتي تحتوي على معلومات حول العديد من لاعبي كرة السلة:
لنفترض أننا نريد تبديل النطاق A1:B5 وعرض النطاق المنقول بدءًا من الخلية D1 .
يمكننا إنشاء الماكرو التالي للقيام بذلك:
SubTransposeRange ()
'specify range to transpose
MyRange = Range(" A1:B5 ")
'find dimensions of range
XUpper = UBound(MyRange, 1)
XLower = LBound(MyRange, 1)
YUpper = UBound(MyRange, 2)
YLower = LBound(MyRange, 2)
'transpose range
Range(" D1 ").Resize(YUpper - YLower + 1, XUpper - XLower + 1).Value = _
WorksheetFunction.Transpose(MyRange)
End Sub
عندما نقوم بتشغيل هذا الماكرو، نحصل على الإخراج التالي:
لاحظ أنه يتم عرض النطاق المنقول بدءًا من الخلية D1 .
بمعنى آخر، يتم عكس الصفوف والأعمدة.
لتبديل نطاق مختلف، ما عليك سوى استبدال A1:B5 في الماكرو بنطاق مختلف.
ملاحظة : يمكنك العثور على الوثائق الكاملة لأسلوب VBA Transpose هنا .
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في VBA:
VBA: كيفية حساب الخلايا التي تحتوي على نص معين
فبا: كيفية حساب عدد الصفوف في النطاق
VBA: كيفية كتابة وظائف COUNTIF وCOUNTIFS