簡體   English   中英

Excel VBA:將列轉置為行

[英]Excel VBA: Transpose a column to a row

我需要將我的列移調到一行。 我有一個代碼,我發現它有效,但它並沒有完全符合我的要求。

這是我運行代碼之前的文件:

文件之前

這是我運行代碼后我的文件的樣子:

文件后

我希望我的結果顯示在列頂部單元格所在的行上。 在這種情況下,我希望列在第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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM