|
▼nakataka さん:
説明不足過ぎましたね済みません。
先ずRSは範囲初め、REは範囲の最後行を表します。
RS=0は範囲の初めが設定されていない状態です。
一応下に説明加えましたがデータがスペース等なく、1〜10以下の数字で
埋められているのならば参照セルが1かどうかだけを判断してやれば
良いと思います。(最初の範囲の処理だけは注意が必要)
Sub test2()
Dim i As Long, j As Long
Dim RS As Long
j = 1
RS = 2 'データが2行目から始まる前提です。でなければフラグが必要
For i = 3 To Cells(65536, 1).End(xlUp).Row
If Cells(i, TC).Value = 1 Then
Range(Cells(RS, 1), Cells(i - 1, 2)).Select
MsgBox "範囲 " & j & " です"
RS = i
End If
Next i
End Sub
>Sub test()
> Dim i As Long, j As Long
> Dim RS As Long, RE As Long
> Dim TC As Integer 'データのある列数
> j = 1
> TC = 1
> For i = 2 To Cells(65536, TC).End(xlUp).Row
> If Cells(i, TC).Value = 1 Then
参照セルが1の場合は強制的にRS=参照行となるのですが
> If RS = 0 Then
> RS = i
> Else
RS<>0の場合は以前の範囲指定処理が済んでいない状態(例9で終わる)
ですので範囲の終わりは今参照している一つ上の行(=i-1)です
> RE = i - 1
> Rows(RS & ":" & RE).Select
> MsgBox "範囲 " & j & " です"
> j = j + 1
前の範囲処理が済んでから、範囲設定RS=参照行を行います。
> RS = i
> RE = 0
> End If
>途中のRS =0から下がもう一つ動きがわかりません。
>RE=i-1など詳しく教えてもらえませんでしょうか?
|
|