• ベストアンサー

Excel VBAのコンボボックスにて条件で絞込みをしたいのですが

いつもお世話になっています。 コンボボックスの3個目が表示されません。 コンボボックス1と2はうまく表示されます。 よろしくお願いします。 Private Sub ComboBox2_Change() Dim ico As Long ico = 1 With ThisWorkbook.Worksheets("data") KEY = Me.ComboBox1.Text KET2 = Me.ComboBox2.Text KET3 = Me.ComboBox3.Text Me.ComboBox3.Clear Do While .Cells(ico, 1) <> "" If .Cells(ico, 1) = KEY And .Cells(ico, 2) = KEY2 Then ITE = .Cells(ico, 3).Value flg = 0 For I = 0 To Me.ComboBox3.ListCount - 1 If ITE = Me.ComboBox3.List(I) Then flg = 1 Next If flg = 0 Then Me.ComboBox3.AddItem ITE End If ico = ico + 1 Loop End With Me.ComboBox3.SetFocus End Sub

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

  • ベストアンサー
  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.2

これは本物のソースからコピーしたものでしょうか? KET2 = Me.ComboBox2.Text KET3 = Me.ComboBox3.Text KETでなくてKEYではないでしょうか。それで If .Cells(ico, 1) = KEY And .Cells(ico, 2) = KEY2 Then このIf文が成立しないのでは。 Option Explicit を宣言しておけば、宣言されていない変数を使うとエラーになるので、変数名を間違えてもエラーになってくれるので、こういうケースを未然に防げます。 単にコピーするときの転記ミスで、的外れだったらすみません。

cocoku
質問者

お礼

ほんとに入力ミスでした。(T_T) 何回もやってもダメなハズです。 すみませんでした。

その他の回答 (1)

  • onlyrom
  • ベストアンサー率59% (228/384)
回答No.1

こんにちは。 変数のタイプミスあり。 ●KET2 = Me.ComboBox2.Text KET2 を下記のように、KEY2 で比較している If .Cells(ico, 1) = KEY And .Cells(ico, 2) =● KEY2 ● Then   また、質問の件では関係ないが   KET3 = Me.ComboBox3.Text これも恐らく   KEY3 では? 以上。    

cocoku
質問者

お礼

ほんとにすみません。ヽ(^^ゞ 情けないです。 何回自分で見てもわからなかったのです。 思いこみですね。 ありがとうございました。

関連するQ&A