|
提示のコードを実行時エラーにならないように直すと
こういうことかと思いますが、
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim R As Long
For R = 4 To 112 Step 36
If Intersect(Target, Cells(R, "A").Resize(14)) _
Is Nothing Then Exit Sub
UserForm1.ComboBox1.DropDown
Exit For
Next
End Sub
↑これだと、Target が第1回目のLoopで指定された範囲、すなわち
[A4:A27]にない限り、 Exit Sub してしまってますよね?
> For R = 4 To 112 Step 36
でLoopしている目的は、
Target がそこで指定された「複数の」セル範囲の「どれかの」
範囲内にあったら、
UserForm1のComboBox1をドロップダウンしてやる
ことにあったのではないですか?
もしそうなら、Targetと その複数セル範囲を順に調べていって
Targetが調べるセル範囲とIntersectしていたら、
UserForm1のComboBox1をドロップダウンして
以後のLoopを中止する(Loopを抜ける = Exit For)
するといった書き方にしないとまずいです。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim R As Long
For R = 4 To 112 Step 36
If Not Intersect(Target, Cells(R, "A").Resize(14)) Is Nothing Then
UserForm1.ComboBox1.DropDown
Exit For
End If
Next
End Sub
|
|