[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『セル参照の繰返し』(えま)
いつもお世話になっています。
アクティブシートに"data_sheet"のセルを参照したいです。
数が多いのでマクロを使いたいと思い
途中まで作りましたが、2つ目のForのところがわかりません。
.Cells(5,17)の17に式が代入できると思い
For Col = 17 To 17 * (8 - 1) + 1 Step 8としましたが、エラーになりました。
ここには何を入れるといいのでしょうか?
また、For Col = 17 To 17 * (8 - 1) + 1 Step 8の下に3行ずつ参照式を
入れましたが、それぞれ列が1ずつ増えています。
これもまとめられないでしょうか?
ここまでが1ブロックの式で、次はアクティブシートは8行下から始まり、
"data_sheet"は1行下から始まります。
これを200回繰り返したいです。
ご教授いただけると、うれしいです。
よろしくお願いします。
Sub データ参照()
Dim DS As Worksheet
Set DS = ThisWorkbook.Sheets("data_sheet")
Dim r As Integer
Dim Col As Integer
With DS
For r = 3 To 10
Cells(r, 2) = .Cells(5, 2)
Cells(r, 6) = .Cells(5, 7)
Cells(r, 7) = .Cells(5, 8)
'17列目から8列置きに8回参照します。
For Col = 17 To 17 * (8 - 1) + 1 Step 8
Cells(r, 13) = .Cells(5, 17)
Cells(r, 14) = .Cells(5, 18)
Cells(r, 15) = .Cells(5, 19)
Cells(r, 17) = .Cells(5, 81)
Cells(r, 18) = .Cells(5, 82)
Cells(r, 19) = .Cells(5, 83)
Next
Next
For r = 11 To 18
Cells(r, 2) = .Cells(6, 2)
Cells(r, 6) = .Cells(6, 7)
Cells(r, 7) = .Cells(6, 8)
Cells(r, 13) = .Cells(6, 17)
Cells(r, 14) = .Cells(6, 18)
Cells(r, 15) = .Cells(6, 19)
Cells(r, 17) = .Cells(6, 81)
Cells(r, 18) = .Cells(6, 82)
Cells(r, 19) = .Cells(6, 83)
Excel2007
Windows Vista
【2】
For Col = 17 To 17 * (8 - 1) + 1 Step 8
Cells(r, 13) = .Cells(5, 17)
Cells(r, 14) = .Cells(5, 18)
Cells(r, 15) = .Cells(5, 19)
Cells(r, 17) = .Cells(5, 81)
Cells(r, 18) = .Cells(5, 82)
Cells(r, 19) = .Cells(5, 83)
Next
このブロックは、変数Colを使用していないので、繰り返しが利いていません。
【3】
Cells(r, 13) = .Cells(5, 17)
Cells(r, 14) = .Cells(5, 18)
Cells(r, 15) = .Cells(5, 19)
これは
Range(Cells(r, 13),Cells(r, 15)).Value = .Range(.Cells(5, 17),.Cells(5, 19)).Value
とまとめて書けそうです。
(みやほりん)
Cells(r, 13) = .Cells(5, Col)
Next
の1行だけで試してみたのですが、エラーといいますか、"3:10,13"に同じ数値が入り、
参照先の"data_sheet"にその数値がないのです。Ctrl+Fで探したので、文字列検索になっていて、
その数値が見つからなかったのかもしれませんが、いずれにしてもそれぞれのセルには別の
数値が入るはずで、それでエラーになっている、と思いました。
IntegerをLongにも変えてみたのですが、結果は同じでした。
あと、【3】のくくりかたですが、17にColを入れると、
For Col = 17 To 17 * (8 - 1) + 1 Step 8なので(式は間違っているかもしれませんが)、
18、19はそれぞれ
For Col = 18 To 18 * (8 - 1) + 1 Step 8
For Col = 19 To 19 * (8 - 1) + 1 Step 8
になります。
これを書きたいのですが、教えていただけるでしょうか。
よろしくお願いします。
(えま)
#今、「更新の衝突が起こりました」とメッセージが出ました。
【1】の部分を変えてくださったのですね。
もう一度更新してみます^^
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.