18

私は非常に単純なことをしようとしていますが、行き詰まっているようです。のヘルプ メニューに従っていますPasteSpecialが、コードをエラーなしで動作させることができないようです。

Worksheets("Sheet1").Range("A1","A5")トランスポーズを に貼り付けたいWorksheets("Sheet2").Range("A1","E1")

これを達成するための最も簡単な方法は何ですか?

4

3 に答える 3

41
Worksheets("Sheet1").Range("A1:A5").Copy
Worksheets("Sheet2").Range("A1").PasteSpecial Transpose:=True
于 2012-01-13T15:18:41.317 に答える
2

WorksheetFunction Transpose()

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があれば、対象範囲の左上のセルに数式を入力するだけでよいと書かれています。それ。

バージョン Excel バージョン。2007 年以降、2011 年以降の Mac、Excel for Microsoft 365

于 2020-08-20T19:11:59.900 に答える