2017-07-26 1 views
0

Excelのコンボボックス(vba)を使用して、入力したものに基づいてリストにアイテムを追加します。彼らはそれを見てクリックすることができます。ComboBox.Dropdownメソッドには1つのリストアイテムしか表示されません

これは、リストを表示するはずのメソッドComboBox1.DropDownを除いて、すべて正常に動作しています。残念ながら、スクロールボタン付きのアイテムは1つしか表示されません。ドロップダウンボタンをクリックするかf4を押すと、ボックスのプロパティによって決定された正しい行数が表示されます。

私はリスト内のすべてのアイテムを自動的に表示する方法を手掛かりにして検索しましたか?

これは私の最初の質問ですので、タグが付いている場合は助言してください。

編集:ActiveXコントロール、.listRowsと.listFillRangeは私がリストを作成するカスタムSub内.DropDownを呼び出してきた

+0

'ComboBox1.DropDown'はどこから呼び出されますか? - ComboBox1_Change()? 'ComboBox1.MatchEntry = 1'(fmMatchEntryComplete)ですか?これはユーザーフォームであり、ActiveXでは正しくありませんか? – PatricK

+0

はい.DropDownはComboBox_Change()によって呼び出されますが、リストを作成する専用のSubにあります。 .MatchEntryがnoneに設定されている、私は問題を持っていたので、これらの行: S = ComboBox1.Value ComboBox1.clear ComboBox1.Value = S リストをクリアしながら、また、マッチした最初のボックスの値を設定しました。値。 私はそれがActiveXコントロールであることを間違いなく指摘しておきたいと思います。私はユーザーフォームを試して、それが違うかどうかを見ていきます。 – EndUserAbuser

+0

まだテキストを書式設定する方法を学ぶ必要があるので、コードとコメントを分けることができるようにドキュメントをチェックアウトします。 – EndUserAbuser

答えて

0

を助けていないようだ、それは今で最後ですので、私はそれを変更するために必要なComboBox1_Change()内の行

なぜ私のSub(_change()によって呼び出された)よりも_change()で異なる動作をするのか分かりません!

これは実際に.clearメソッドを使用し、.Dropdownを呼び出すことに関連していると思われます。表示する行数を再計算しません。私はちょうど別々のサブにあなたの応答のためにそれらを保つ必要があるかもしれません@PatricK

編集:解決されていない、最初の "変更"でより多くの文字が入力された正常に動作するように残りのリストはun-cleared最初の行が更新され、スクロールボタンが表示されます。私はこれらの方法がどのように書かれているのか、実行されたのかを正確に知りたがっています。

+0

これが役立つかどうかはわかりませんが、ComboBoxesに関しては、 Clickイベント。 – braX

+0

興味深いことに、あなたのタイプに合わせてリストを変更したいのであれば、私のニーズに合うとは思っていません。 – EndUserAbuser

0
ComboBox1.Visible = False 
ComboBox1.Visible = True 
ComboBox1.Activate 
If ComboBox1.ListCount > 0 Then 
    ComboBox1.DropDown 
End If 

このコードは、トリックを行うようだ、少なくとも複数のラインがdiplayedされ、リストには前とは違って、アイテムが削除された場合に短くなっています。

関連する問題