Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


21661 / 76734 ←次へ | 前へ→

【60464】Re:Exit Forについて
発言  kanabun  - 09/2/23(月) 14:15 -

引用なし
パスワード
   提示のコードを実行時エラーにならないように直すと
こういうことかと思いますが、

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

2 hits

【60458】Exit Forについて kiki 09/2/23(月) 13:35 質問
【60460】Re:Exit Forについて kanabun 09/2/23(月) 13:44 発言
【60463】Re:Exit Forについて ぴかる 09/2/23(月) 13:56 発言
【60466】Re:Exit Forについて kiki 09/2/23(月) 14:23 お礼
【60468】Re:Exit Forについて kiki 09/2/23(月) 14:34 お礼
【60464】Re:Exit Forについて kanabun 09/2/23(月) 14:15 発言

21661 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free