- ベストアンサー
VBA Copy/Paste メソッド
エクセル2002使用です。 sheet1のA7からD19セルの値を sheet2のB列の一列に転記をしたいのですが、 コピーが上手くできません。 Copy、Pasteメソッドを使用するときの セルの選択が良くわからないのですが、 よろしくお願いします。 Sub tenki() Dim i As Integer Dim j As Integer For i = 7 To 19 For j = 1 To 4 Cells(i, j).Copy Worksheets("sheet2").Activate Range("B65536").End(xlUp).Select ActiveCell.past ←ここでエラー(注) Next j Next i End Sub (注) エラー オブジェクトは、このプロパティーまたはメソッドをサポートしていません。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
おはようございます。 提示のコードを修正するなら --------------------------------------------- Sub tenki() Dim i As Integer Dim j As Integer For i = 7 To 19 For j = 1 To 4 Cells(i, j).Copy Destination:=Sheets("sheet2").Range("B65536").End(xlUp).Offset(1) Next j Next i End Sub ------------------------------------------------- 尚、Copyの場合は書式(色、罫線等)もコピーされますので、値だけなら、Copyの代わりに Sheets("Sheet2").Range("B65536").End(xlUp).offset(1).value = Cells(i, j).Value としてください。 以上です。
その他の回答 (1)
- arata
- ベストアンサー率49% (139/279)
よくわかんないけど、素直に Sub tenki() Dim i As Integer Dim j As Integer Dim k As Integer Dim objFrom As Worksheet Dim objTo As Worksheet Set objFrom = ThisWorkbook.Worksheets("Sheet1") Set objTo = ThisWorkbook.Worksheets("Sheet2") k = 1 For i = 7 To 19 For j = 1 To 4 objFrom.Cells(i, j).Copy Destination:=objTo.Cells(k, 2) k = k + 1 Next j Next i End Sub taocatさんの回答のように値だけのコピーなら objFrom.Cells(i, j).Copy Destination:=objTo.Cells(k, 2) を objTo.Cells(k, 2).Value = objFrom.Cells(i, j).Value に変更
お礼
taocat 様 早速のご回答ありがとうございました。 ばっちりでした。 本当にありがとうございました。 今後ともよろしくお願いします。