كيفية تبديل نطاق في 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

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *