#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