簡體   English   中英

Excel VBA - Range.Copy 轉置粘貼

[英]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.

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