[英]Excel VBA - Range.Copy transpose paste
我正在關注PasteSpecial
的幫助菜單,但我似乎無法讓我的代碼在沒有錯誤的情況下正常工作。
我想使用Worksheets("Sheet1").Range("A1","A5")
並將轉置粘貼到Worksheets("Sheet2").Range("A1","E1")
。
完成此任務的最簡單方法是什么?
Worksheets("Sheet1").Range("A1:A5").Copy
Worksheets("Sheet2").Range("A1").PasteSpecial Transpose:=True
這是一個不使用剪貼板的有效選項。
Sub transposeAndPasteRow(rowToCopy As Range, pasteTarget As Range)
pasteTarget.Resize(rowToCopy.Columns.Count) = Application.WorksheetFunction.Transpose(rowToCopy.Value)
End Sub
像這樣使用它。
Sub test()
Call transposeAndPasteRow(Worksheets("Sheet1").Range("A1:A5"), Worksheets("Sheet2").Range("A1"))
End Sub
工作表函數轉置()
無需通過 PasteSpecial 進行復制、粘貼和使用Transpose
選項,您只需鍵入一個公式
=TRANSPOSE(Sheet1!A1:A5)
或者如果您更喜歡 VBA:
Dim v
v = WorksheetFunction.Transpose(Sheet1.Range("A1:A5"))
Sheet2.Range("A1").Resize(1, UBound(v)) = v
注意:或者您可以使用后期綁定的Application.Transpose
代替。
MS 幫助參考指出,擁有當前版本的Microsoft 365 ,可以簡單地在目標范圍的左上角單元格中輸入公式,否則必須通過Ctrl+Shift+Enter將公式作為舊數組公式輸入以確認它。
版本Excel 版本。 2007 年以上,自 2011 年以來的 Mac,Microsoft 365 的 Excel
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.