Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


23653 / 76738 ←次へ | 前へ→

【58448】Re:For文で集計貼付
発言  かみちゃん  - 08/10/26(日) 16:04 -

引用なし
パスワード
   こんにちは。かみちゃん です。

> うまく自分の実現したいことを伝えられず

最初は、

> 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

1 hits

【58431】For文で集計貼付 初心者 08/10/26(日) 6:36 質問
【58432】Re:For文で集計貼付 かみちゃん 08/10/26(日) 8:00 発言
【58434】Re:For文で集計貼付 初心者 08/10/26(日) 10:26 質問
【58435】Re:For文で集計貼付 かみちゃん 08/10/26(日) 10:33 発言
【58443】Re:For文で集計貼付 初心者 08/10/26(日) 13:59 質問
【58444】Re:For文で集計貼付 かみちゃん 08/10/26(日) 14:09 発言
【58445】Re:For文で集計貼付 初心者 08/10/26(日) 14:36 質問
【58448】Re:For文で集計貼付 かみちゃん 08/10/26(日) 16:04 発言
【58451】Re:For文で集計貼付 初心者 08/10/26(日) 18:51 質問
【58452】Re:For文で集計貼付 かみちゃん 08/10/26(日) 19:13 発言
【58453】Re:For文で集計貼付 初心者 08/10/26(日) 19:56 質問
【58454】Re:For文で集計貼付 かみちゃん 08/10/26(日) 20:32 発言
【58455】Re:For文で集計貼付 初心者 08/10/26(日) 21:58 お礼

23653 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free