|
ほぇぇ、すごいです。。。
まさに希望していた回答でした。
本当にありがとうございます。
まだまだスマートなマクロはかけないですが、これからもがんばります。
>D4、D5、D6〜と連続したセル位置なら Offset とか使えばcell1〜という変数はいらないと思います。
勉強として、このときどう表現するとキレイか、
お時間あればまた教えていただけると助かります。
よろしくお願いします。
ありがとうございました。
▼ウッシ さん:
>こんにちは
>
>元の位置情報が
>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)、、、、と順に指定したいです。
>>
>>どうすればうまくセルを指定できるでしょうか?
>>よろしくお願いします。
|
|