Excel VBA:将列转置到一行

我需要将我的列转置为一行。 我有一个代码,我发现的作品,但它并没有做到我想要的。

这是我的文件在运行代码之前的样子:

文件之前

这是我运行代码后我的文件看起来像:

文件后

我希望我的结果显示在列顶部的单元格所在的行上。 在这种情况下,我希望列在第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" & I).PasteSpecial Transpose:=True Set rng = rng.Offset(60) Wend rng.EntireColumn.Delete End Sub 

单程:

 '// 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