|
こんにちは。かみちゃん です。
> うまく自分の実現したいことを伝えられず
最初は、
> Sheet1のE列から3列飛ばしでBW列まである数字をコピーして、Sheet2に貼り付ける処理
> を行うことを3から100行までFor文で実行したい
ということなのですが、
Range("E3,I3,M3(省略)・・・・・,BW3").Select
となっていたり、
Sheets("sheet3").Select
となっていたり、
> 貼り付けをG列・I列・K列と処理したい
ともおっしゃっていて、初心者さんのコードをできるだけ崩さずに修正する方法を考えて
いたのですが、時間もなくなってきたので私なりの方法を提案したいと思います。
Sub Sample()
Dim i As Long
Dim j As Long
For i = 3 To 100
Sheets("Sheet1").Cells(1, 1).Value = i
If Sheets("Sheet1").Cells(i, 1).Value <> "" Then
For j = 5 To 75 Step 4
'貼り付けをG列・I列・K列と処理する
Sheets("Sheet1").Cells(i, j).Copy Sheets("Sheet2").Cells(i, j + 2 + Int((j - 5) / -4) * 2)
Next
End If
Next
MsgBox "終了"
End Sub
For j = 5 To 75 Step 4
'貼り付けをG列・I列・K列と処理する
Sheets("Sheet1").Cells(i, j).Copy Sheets("Sheet2").Cells(i, j + 2 + Int((j - 5) / -4) * 2)
Next
のあたりは、変数をもうひとつ用意して、処理したほうがわかりやすいかもしれませんね。
Dim k As Long
k = 7
For j = 5 To 75 Step 4
'貼り付けをG列・I列・K列と処理する
Sheets("Sheet1").Cells(i, j).Copy Sheets("Sheet2").Cells(i, k)
k = k + 2
Next
|
|