2017-05-11 13 views
0

作業環境:エクセル2013シート全体をコピーし、VBA内の別のシートにペーストを移す方法は?

対象:

  1. コピーシート全体
  2. は、この新しいシートにコピーしたシートを貼り付け
  3. 転置別のシートを作成します。

私が使用していたコードは以下の通りである:私はそれを実行したときしかし、私はエラーを得

Worksheets("Sheet4").Copy 
Worksheets("Master").PasteSpecial Transpose:=True 

アプリケーション定義またはオブジェクト定義のエラー

なぜ誰かが私を理解するのを助けることができますか?

+2

'ワークシート(「シート4」)Copy'のコピーを、あなたが取得するときに貼り付けることは何もありません。次の行に移動します。とにかく16384行x 1048576列の領域に1048576行x 16384列を貼り付けることはできません - Excelは最大16384列しか処理しません。 – YowE3K

答えて

1

たぶん、あなたは以下のようなコードの後:

Option Explicit 

Sub CreateAndCopyTran() 

Dim ws As Worksheet 

' create a new worksheet, and name it "Master" 
Set ws = ThisWorkbook.Worksheets.Add(after:=ThisWorkbook.Worksheets(1)) 
ws.Name = "Master" 

' copy the UsedRange and Transpose 
Worksheets("Sheet4").UsedRange.Copy 
ws.Range("A1").PasteSpecial xlPasteAll, Transpose:=True 

End Sub 
+0

ありがとう!別の質問は、通常コードをどこから見つけるのですか?私はVBAライブラリがあることを意味しますか? –

0

あなたはシート4のセルではなく、シート自体をコピーしたいので、あなたは、範囲/セルのコピーメソッドを呼び出す必要があります。

同様に、シートオブジェクトではなく、範囲オブジェクトに対してPasteSpecialメソッドを呼び出す必要があります。

次の例のように、これを試みることができる:新しいワークブックに、ではないクリップボードにシート

Sub test() 
    Worksheets("Sheet4").UsedRange.Copy 
    Worksheets("Master").Cells(1, 1).PasteSpecial Transpose:=True 
End Sub 
+0

ありがとうございます!それは本当に私を助けます。 –

関連する問題