2016-10-11 95 views
1

我需要將我的列轉置爲行。我有一個我覺得可行的代碼,但它並不完全符合我的願望。Excel VBA:將列轉置爲行

這是我的文件看起來像之前我運行代碼:

File Before

這是我的文件看起來像後,我運行代碼:

File After

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

回答

0

方式一:

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

謝謝!很好地工作 – Ridwan