2016-05-11 8 views
0

私は初心者ですが、以下のコードがありますが、シートとペーストの最後の行がシート2の範囲にコピーされます。基本的に空の行は更新されません。また、実行時エラー1004 - アプリケーション定義またはオブジェクト定義エラーをスローします。どんな助けでも大歓迎です。1つのシートから特定の列をコピーして別の範囲の別のシートに貼り付けるにはどうすればいいですか?

Sub copypaste() 
Dim lastrow As Long, erow As Long 

lastrow = ThisWorkbook.Worksheets("sheet1").Cells(Rows.Count, 1).End(xlUp).Row 
For i = 2 To lastrow 

Sheet1.Cells(i, 3).Copy 
erow = ThisWorkbook.Worksheets("sheet2").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row 
Sheet1.Paste Destination:=Worksheets("Sheet2").Cells(erow, 2) 
Sheet1.Cells(i, 14).Copy 
Sheet1.Paste Destination:=Worksheets("Sheet2").Cells(erow, 4) 
Sheet1.Cells(i, 6).Copy 
Sheet1.Paste Destination:=Worksheets("Sheet2").Cells(erow, 3) 

Next i 

Application.CutCopyMode = False 
ThisWorkbook.Worksheets("sheet2").Columns().AutoFit 
Range("A1").Select 

End Sub 

これはシート1 sheet 1

であり、これはSheet2のであるとしましょう: sheet2:

ヘッダが命名して、わずかに異なっていて、位置変更もあります。シート1の最後の行が変更されます。

+0

あなたはコードが何をしているか説明しましたが、あなたがしたいことを説明できますか?望ましい結果の一例もまた有用であろう。 –

+0

@tim:私がしたいのは、シート1のペースト1からペースト2をシート2のコラム2にコピーし、コラム14をシート1からコピーしてシート2のコラム4に貼り付けることです。そして、私は両方のシートからヘッダーをコピーせずに同じことをしたい。最後に、マクロを実行すると、データが、シート1からシート2に、ヘッダーなしで、別の領域にコピーされます。これは助けて欲しい – Visa

+1

@TimWilkinson質問を編集して詳細を追加しました – Visa

答えて

1

コピー&ペーストを避けるために、これを試してください。

Sub copypaste() 
Dim lastrow As Integer, erow As Integer, sheet1 As Worksheet, sheet2 As Worksheet 

Set sheet1 = Worksheets("Sheet1") 
Set sheet2 = Worksheets("Sheet2") 
lastrow = sheet1.Cells(Rows.Count, 1).End(xlUp).Row 

For i = 2 To lastrow 
    erow = sheet2.Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).Row 
    sheet2.Cells(erow, 2) = sheet1.Cells(i, 3) 
    sheet2.Cells(erow, 3) = sheet1.Cells(i, 6) 
    sheet2.Cells(erow, 4) = sheet1.Cells(i, 14) 
Next i 

'ThisWorkbook.Worksheets("Sheet2").Columns().AutoFit 
'sheet1.Cells(1, 1).Activate 
End Sub 
+0

これはまだ私にランタイムエラー1004を与えています - アプリケーション定義またはオブジェクト定義エラー.. – Visa

+0

私はちょうど好奇心の最後の2つの行を試してみることができます新しいコードとそれがまだ発生するかどうかを確認しますか? –

+0

その作業.. :)ありがとうございます..しかし、方法を知って好奇心が強いです。 – Visa

関連する問題