|
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=37121;id=excel
この続きです。続きに質問しようと試みたのですがどうしてもできなかったので
新しく投稿しました。すみません。
もうひとつ質問させてください。
コピー元のセルが離れていて、コピー先のセルが連続している場合、
教えていただいた方法でできるのですが、コピー先もセルが離れていると
教えていただいた方法でもできません。例えば、コピー元がA1,B1とC3のとき
コピー先がA10、B10とC12のとき次のようにすると
Dim A As Range
Dim B As Range
Dim C As Range
Dim I As Long
Set A = Range("A1:B1,C3")
Set B = Range("A10:B10,C12")
I = 1
For Each C In A
B(I).Value = C.Value
I = I + 1
Next C
C3はA11にコピーされてしまいます。
そこで、考えた結果次のようにしてみました。
Dim A As Range
Dim B As Range
Dim C As Range
Dim D As Range
Dim WK As Range
Dim I As Long
Dim J As Long
Set A = Range("A1:B1,C3")
Set WK = Range("A20:C20")
Set B = Range("A10:B10,C12")
I = 1
For Each C In A
WK(I).Value = C.Value
I = I + 1
Next C
J = 1
For Each D In B
D.Value = WK(J).Value
J = J + 1
Next D
すなわち、連続するワークエリアを使用して、ステップ1として
ワークエリアに転記する。ステップ2としてワークエリアから
目的のコピー先に転記する。これで、目的は果たせます。
何の問題も無いと思われますが、どうも、2ステップ踏むことと
ワークエリアを使用するのが少しダサいような気がします。
1ステップでできる方法がもしあるようなら教えてください。
私の頭ではこれ以外思いつきません。
|
|