- ベストアンサー
エクセルマクロ 不定範囲へのコピー
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
B列にはB1からデータが入っているとして 以下のどちらかで E1だけのデータをコピーする Sub Test() Dim LastRow As Long With Sheets("Sheet1") LastRow = .Cells(Rows.Count, "B").End(xlUp).Row .Range(.Cells(1, "A"), .Cells(LastRow, "A")).Value = Sheets("data").Range("E1").Value End With End Sub E1からB列の最終行と同じ行数分(B10までならE10まで)コピーする Sub Test2() Dim LastRow As Long With Sheets("Sheet1") LastRow = .Cells(Rows.Count, "B").End(xlUp).Row .Range(.Cells(1, "A"), .Cells(LastRow, "A")).Value = Sheets("data").Range("E1").Resize(LastRow, 1).Value End With End Sub
その他の回答 (2)
- kkkkkm
- ベストアンサー率66% (1732/2602)
> シート名を指定せず、アクティブシートでこのマクロを実行する With Sheets("Sheet1") を With ActiveSheet にしてください。
お礼
重ね重ねのご教示ありがとうございました。
- imogasi
- ベストアンサー率27% (4737/17069)
>B1には必ずデータは入力されていて、B列のデータは連続しています。 これは下記のやり方には好都合。 B列のデータのある、最終行は、よく使われる、B1からEnd(xlDown)の下記や別のB10000からEnd(xlUp)でわかる。 Sub test01() x = Range("B1").End(xlDown).Row MsgBox x Range("B1:B" & x).Select Selection.Copy Range("E1") End Sub それだけの問題ではないの? ーー 質問文は、何のことを言っているかわからない。突然「data」シートの「E1」・・など出てきて B列とのシートとは別か? 質問文を正しく書ける訓練をすること。 これができるようになるためには、もっとエクセルの勉強が、背後に必要なのだと思う。 マクロなど手をだす以前にね。 == 課題を推定して、 Sub test01() x = Range("B1").End(xlDown).Row MsgBox x Range("B1:B" & x).Select Selection.Copy Range("E1") End Sub
補足
ご回答ありがとうございます。あと1点ご教示願います。シート名を指定せず、アクティブシートでこのマクロを実行するにはどのように変えればよいでしょうか(データのコピー元は同じ)?