|
超初心者の質問で申し訳ありませんが
どなたか助けて下さい。
質問は コンボックスにデータを追加するマクロで
ちょっとつまずいてしまったので今回ここにアップ
させていただきました。
条件としては、コンボックス1と2があり、その
コンボックス1のなかにはあるリストを追加します。
このコンボックス1で選択した時、その中のデータに
応じてコンボックス2のリストを変化させるマクロです。
データ
│ 1 │ 2 │ 3
─┼───┼───┼─────────
│コン1│ │コン2
1│ A店│ A │りんご
2│ B店│ A │みかん
3│ C店│ A │すいか
4│ D店│ A │かき
5│ E店│ B │いちご
6│ F店│ B │めろん
7│ G店│ B │ぱいん
8│ │ B │もも
9│ │ │
10│ │ │
コンボックス1 →→ コンボックス2
B店 いちご
めろん
ぱいん
もも
上のようなデータで例えばコンボックス1で
B店を選択すると コンボックス2ではB店でのみ
扱っているリストを表示(コンボックスのアイテム)に
させたいのですが、コンボックスにデータを入力させる
為に、Find メソッドで始めの行数を取得し、 FindNextを
使って最後の行数を取得して、その間のデータを取り込もうと
考えているのですが、FindNextを使うとうまく行かないので
どなたかアドバイスの方、宜しくお願いします。
長々と書いてしまい申し訳ありません。
With Worksheets("Sheets1").Range("D2:D400")
KENSAKU = お店ComboBox.Value
Set 検索 = .Find(KENSAKU)
If Not 検索 Is Nothing Then
firstAddress = 検索.Address
KAZU = Range(firstAddress).Row
お店コード = Worksheets("Sheets1").Cells(KAZU, 3).Value
End If
End With
With Worksheets("Sheets1").Range("G2:G9000")
KENSAKU = お店コード
Set 検索 = .Find(KENSAKU)
If Not 検索 Is Nothing Then
firstAddress = 検索.Address
KAZU = Range(firstAddress).Row
End If
End With
With Worksheets("Sheets1").Range("G2:G9000")
EKAZU = 0
Set 検索 = .Find(KENSAKU)
If Not 検索 Is Nothing Then
firstAddress = 検索.Address
Do
Set 検索 = .FindNext(KENSAKU)←ここでエラーになります。
LastAddress = 検索.Address
If KAZU = EKAZU Then
Exit Do
Else
EKAZU = Range(LastAddress).Row
End If
Loop
End If
End With
For i = KAZU To EKAZU
If Worksheets("Sheets1").Cells(i, 9).Value = "" Then
Else
売物ComboBox.AddItem Worksheets("Sheets1").Cells(i, 9).Value
End If
Next
|
|