Як транспонувати діапазон у 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: як підрахувати кількість рядків у діапазоні
VBA: як написати функції COUNTIF і COUNTIFS