Как транспонировать диапазон в 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *