|
▼のり さん:
(どうも伝わっていないようなので、もういちど 説明させてください)
> 例えば(i)=3の場合に("A2")のセルが 0 or ""の時
> このカウントを抜けて次のカウントの4に移る
> 方法が良くわからないのです。
>EXIT FORだと処理が中断してしまい
>IFをつかってもうまくいかないので・・・
●各ワークシートの[A2]セルが空白だったら何もしないで次にシートに移る
●(何か値が入っているときだけ 通常処理をして)次のシートに移る
という手順は
●「次のシートに移る」という共通処理の部分は
For〜Nextで実現していますから、
●あとは For〜Next のなかに「通常処理をしない条件」を If文のなかに
書けばいいです。
________________________________________
Dim ws As Worksheet
For Each ws In Worksheets
If IsEmpty(ws.[A2].Value) Then
'←(ココには 何もcodeを書く必要がありません)
Else
通常処理
End If
Next ws '←● 次のワークシートへ
または すなおに「通常処理をする条件」をIf文の中に書けばいいです。
________________________________________
Dim ws As Worksheet
For Each ws In Worksheets
If Not IsEmpty(ws.[A2].Value) Then
通常処理
End If
Next ws '次のワークシートへ
>("A2")のセルが 0 or ""の時
> このカウントを抜けて次のカウントの4に移る
判定条件が Orで2種類あるときも 「Or 使わないで」こう書けばいいです。
________________________________________
Dim ws As Worksheet
For Each ws In Worksheets
Select Case ws.[A2].Value
Case "", 0
Case Else
通常処理
End Select
Next ws '次のワークシートへ
もちろんFor Each 〜 Nextでなく、これまでのように
For〜Nextを使って書いてもいいです。
>>For i = 1 To Worksheets.Count ' ワークシートの数
>> If IsEmpty(Worksheets(i).Range("A2").Value) Then
'次のシートに移る
>> Else
>> 通常処理
>> End If
>>Next ' 次のシートに移る
または
>>For i = 1 To Worksheets.Count ' ワークシートの数
If Not IsEmpty(Worksheets(i).Range("A2").Value) Then
>> 通常処理
>> End If
>>Next ' 次のシートに移る
|
|