|
こんにちは
元の位置情報が
D4、D5、D6〜と連続したセル位置なら Offset とか使えばcell1〜という変数はいらないと思います。
連続していないなら
Sub Macro1()
Dim cell(1 To 2) As String
Dim i As Long
cell(1) = Range("D4").Value 'D4セルにはI5と入っている。I5セルにはコピーしたい数値あり
cell(2) = Range("D5").Value 'D5セルにはI7と入っている。I7セルにはコピーしたい数値あり
For i = 1 To 2
Range(cell(i)).Copy Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
Next
End Sub
Offset(0, 0)だと、ずっと上書きされちゃうのでOffset(1, 0)にしてあります。
▼Mst さん:
>指定したセルの値を取得して張り付ける作業を考えてます。
>D4, D5でコピーしたいセルを指定。
>
>
>Sub Macro1()
>Dim cell1 As String, cell2 As String
>
>cell1 = Range("D4") 'D4セルにはI5と入っている。I5セルにはコピーしたい数値あり
>cell2 = Range("D5") 'D5セルにはI7と入っている。I7セルにはコピーしたい数値あり
>
>
>For i = 1 To 2
>Range(cell & i).Copy
>Range("A1048576").End(xlUp).Offset(0, 0).Select
>Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
> :=False, Transpose:=False
>Next
>
>End Sub
>
>この場合、
>Range(cell & i).Copy
>でエラーになって止まってしまいます。
>実際はコピーしたいセルが多いため、
>うまくRange(cell1), Range(cell2)、、、、と順に指定したいです。
>
>どうすればうまくセルを指定できるでしょうか?
>よろしくお願いします。
|
|