Excel VBA: транспонировать столбец в строку

#vba #excel #transpose

#vba #excel #транспонировать

Вопрос:

Мне нужно перенести мой столбец в строку. У меня есть код, который я нашел, который работает, но он делает не совсем то, что я хочу.

Вот как выглядит мой файл перед запуском кода:

Файл перед

Вот как выглядит мой файл после запуска кода:

Файл после

Я хочу, чтобы мой результат отображался в строке, в которой находится верхняя ячейка столбца. В этом случае я хочу, чтобы столбец транспонировался в 5-й строке, а не переходил к 1-му, как вы видите на втором рисунке.

Это мой код:

 Private Sub CommandButton1_Click()
Dim rng As Range
Dim I As Long

    Set rng = Range("B5")
    While rng.Value <> ""
        I = I   1
        rng.Resize(60).Copy
        Range("C" amp; I).PasteSpecial Transpose:=True
        Set rng = rng.Offset(60)

    Wend
    rng.EntireColumn.Delete
End Sub
  

Ответ №1:

Один из способов:

 '// source column range
Set rng = Range("B5", Range("B5").End(xlDown))

'// resize from destination cell, transpose
Range("B5").Resize(rng.Columns.Count, rng.Rows.Count).Value = WorksheetFunction.Transpose(rng)

'// clear transposed values
'// offset by 1 to preserve B5
rng.Offset(1, 0).Clear