こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

(注)
エラー 
オブジェクトは、このプロパティーまたはメソッドをサポートしていません。

投稿日時 - 2005-02-18 09:49:39

QNo.1224549

困ってます

質問者が選んだベストアンサー

おはようございます。

提示のコードを修正するなら
---------------------------------------------
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

としてください。
以上です。

投稿日時 - 2005-02-18 10:52:32

お礼

taocat 様 早速のご回答ありがとうございました。

ばっちりでした。
本当にありがとうございました。

今後ともよろしくお願いします。

投稿日時 - 2005-02-18 11:00:16

ANo.1

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

よくわかんないけど、素直に

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

に変更

投稿日時 - 2005-02-18 10:58:40

あなたにオススメの質問