Excel VBA質問箱 IV

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

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


1245 / 13645 ツリー ←次へ | 前へ→

【75480】VBA ループ コードのご教授 ルーツ 14/4/13(日) 23:31 質問[未読]
【75482】Re:VBA ループ コードのご教授 ルーツ 14/4/14(月) 15:04 発言[未読]
【75484】Re:VBA ループ コードのご教授 γ 14/4/14(月) 19:21 発言[未読]
【75487】Re:VBA ループ コードのご教授 ルーツ 14/4/14(月) 19:51 発言[未読]
【75488】Re:VBA ループ コードのご教授 γ 14/4/14(月) 20:04 発言[未読]
【75489】Re:VBA ループ コードのご教授 γ 14/4/14(月) 20:13 発言[未読]
【75491】Re:VBA ループ コードのご教授 ルーツ 14/4/14(月) 21:02 発言[未読]

【75480】VBA ループ コードのご教授
質問  ルーツ  - 14/4/13(日) 23:31 -

引用なし
パスワード
   シート2のD列〜K列までの1行目を
シート1のH3、O3、V3〜CG3と7列おきに転記したいです。

下記のコードでループを抜ける方法はありますか。
Dim rng As Range, i As Long
For Each rng In Worksheets("Sheet1").Range("D1:G1")
Worksheets("Sheet2").Range("H3").Offset(, 7 * i).Value = rng.Value
i = i + 1
Next rng

申し訳ございませんがご教授お願いいたします。

独学中の初心者です。
宜しくお願い致します。

【75482】Re:VBA ループ コードのご教授
発言  ルーツ  - 14/4/14(月) 15:04 -

引用なし
パスワード
   ▼ルーツ さん:
>シート2のD列〜K列までの1行目を
>シート1のH3、O3、V3〜CG3と7列おきに転記したいです。
>
>下記のコードでループを抜ける方法はありますか。
>Dim rng As Range, i As Long
>For Each rng In Worksheets("Sheet1").Range("D1:K1”)
>Worksheets("Sheet2").Range("H3").Offset(, 7 * i).Value = rng.Value
>i = i + 1
>Next rng
>
>申し訳ございませんがご教授お願いいたします。
>
>独学中の初心者です。
>宜しくお願い致します。

G1ではなくK1でした。

【75484】Re:VBA ループ コードのご教授
発言  γ  - 14/4/14(月) 19:21 -

引用なし
パスワード
   ▼ルーツ さん:
>>下記のコードでループを抜ける方法はありますか。
いつ、どういう条件の時に抜けたいのですか?

【75487】Re:VBA ループ コードのご教授
発言  ルーツ  - 14/4/14(月) 19:51 -

引用なし
パスワード
   お世話になります。
ご連絡ありがとうございます。

シート2の列数が 数列増えそうなので
シート2の O1に達したらループを終わらせたいです。

【75488】Re:VBA ループ コードのご教授
発言  γ  - 14/4/14(月) 20:04 -

引用なし
パスワード
   ▼ルーツ さん:
>シート2の列数が 数列増えそうなので
>シート2の O1に達したらループを終わらせたいです。

O1も含めて実行するなら、
For Each rng In Worksheets("Sheet1").Range("D1:G1")
としたら良いのでは?

実は、質問の趣旨がよくわかっていないので、
↑で違っていたら、もう一度説明してください。

【75489】Re:VBA ループ コードのご教授
発言  γ  - 14/4/14(月) 20:13 -

引用なし
パスワード
   範囲自体は広くとっておくのだが、
ブランクのところに来たら、処理を抜けると言う意味ですか?
# 勝手な推測ですが。

Sub test()
  Dim rng As Range, i As Long
  For Each rng In Worksheets("Sheet1").Range("D1:O1")
    If IsEmpty(rng.Value) Then Exit For
    Worksheets("Sheet2").Range("H3").Offset(, 7 * i).Value = rng.Value
    i = i + 1
  Next rng
End Sub

【75491】Re:VBA ループ コードのご教授
発言  ルーツ  - 14/4/14(月) 21:02 -

引用なし
パスワード
   ご回答ありがとうございます。

説明不足で大変申し訳ありません。

ご指摘の通りブランクになったら処理を抜けたいのと
シート1のCG3で転記を終わらせたいです。

現在、組み込まれているコードに 追加で組んでいまして
そのせいなのか セル番地 YW3まで入力されてしまいます。

別シートで検証した結果問題なく処理が完了したことで
現在、組まれているコードに組もうとしているコードが悪さしていると思いました。

もう一度 見直しを行ってみます。

それでも分からないときは またお知恵をお借りしたいと思いますので
宜しければ お力添えのほどよろしくお願いいたします。


▼γ さん:
>範囲自体は広くとっておくのだが、
>ブランクのところに来たら、処理を抜けると言う意味ですか?
># 勝手な推測ですが。
>
>Sub test()
>  Dim rng As Range, i As Long
>  For Each rng In Worksheets("Sheet1").Range("D1:O1")
>    If IsEmpty(rng.Value) Then Exit For
>    Worksheets("Sheet2").Range("H3").Offset(, 7 * i).Value = rng.Value
>    i = i + 1
>  Next rng
>End Sub

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