こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

VBA For~Next

こんにちは

上手く 説明できるか心配なのですが
下記のテスト1ですと 36行毎に
Targetが A4,A40,A76,A112だと
A1,A437,A73,A109.Value = "" Then ComboBox3.DropDownさせてから
ComboBox4.DropDownさせてますが
A1,A437,A73,A109にValue が入っていると
A4,A40,A76,A112のCellをActiveしても ComboBox4.DropDown しません。
そこで、テスト2のように For~Nextを二つに分けました。
テスト2の方法しか無いのでしょうか?
宜しくお願いします。

Dim Row As Long 'テスト1
For Row = 4 To 112 Step 36
If Not Intersect(Target, Cells(Row, "A")) Is Nothing Then '今日の日付DropDown
If Cells(Row - 3, "A").Value = "" Then form.ComboBox3.DropDown
ElseIf Not Intersect(Target, Range(Cells(Row, "A"), Cells(Row + 13, "A"))) Is Nothing Then 'A列日付
form.ComboBox4.DropDown
End If
Next

Dim Row As Long, iRow As Long 'テスト2
For Row = 4 To 112 Step 36
If Not Intersect(Target, Cells(Row, "A")) Is Nothing Then '今日の日付DropDown
If Cells(Row - 3, "A").Value = "" Then form.ComboBox3.DropDown
End If
Next
For iRow = 4 To 112 Step 36
If Not Intersect(Target, Range(Cells(iRow, "A"), Cells(iRow + 13, "A"))) Is Nothing Then 'A列日付
form.ComboBox4.DropDown
End If
Next

投稿日時 - 2008-12-30 15:22:24

QNo.4593271

困ってます

質問者が選んだベストアンサー

なんかよく分からんけど

Dim Row As Long 'テスト1
For Row = 4 To 112 Step 36
If Not Intersect(Target, Cells(Row, "A")) Is Nothing Then '今日の日付DropDown
If Cells(Row - 3, "A").Value = "" Then form.ComboBox3.DropDown
End If
If Not Intersect(Target, Range(Cells(Row, "A"), Cells(Row + 13, "A"))) Is Nothing Then 'A列日付
form.ComboBox4.DropDown
End If

これでよいかな?

投稿日時 - 2008-12-30 15:35:56

お礼

こんにちは

ElseIfでは無く
End Ifを使って もう1回 Ifを使えばいいのですね!
勉強になりました。

hige_082さん 有り難うございました。

投稿日時 - 2008-12-30 15:50:32

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問