一个function下拉的三个combobox

我遇到了一个问题,将三个可search的combobox与下拉列表结合在一起。

我用类似于这个的方式创build了三个可search的combobox,我从YouTube( video )上下载。 简而言之,它是一个可以键入的combobox,它dynamic地将ListFillRange更新为string中的types。 因此,您可以search一个国家,然后在dynamic下拉列表中select它。

我有三个comboboxselect国家。 combobox在一张纸上,dynamic列表(称为CountryOne,CountryTwo,CountryThree – 在名称pipe理器中创build)位于单独的工作表上。 我已经将file upload到了Dropbox上。

对于combobox,使用下面的简单代码:

Private Sub ComboBox1_Change() ComboBox1.ListFillRange = "CountryOne" ComboBox1.DropDown End Sub Private Sub ComboBox3_Change() ComboBox3.ListFillRange = "CountryTwo" ComboBox3.DropDown End Sub Private Sub ComboBox2_Change() ComboBox2.ListFillRange = "CountryThree" ComboBox2.DropDown End Sub 

每个combobox都能正常工作,直到我select其中一个国家。 select了一个国家后(比如在combobox1中),我移动到另一个combobox(combobox2),该combobox的下拉列表停止工作。 如果我在combobox2中input某些内容,下拉列表将显示在combobox1(与所选国家/地区的combobox)下,并只显示所选国家。 这很难解释,所以请看文件。

为了帮助发现问题,我创build了以下video 。 在这里我首先testing所有三个combobox,并且它们工作正常。 然后我select其中一个国家,另外两个国家停止正常工作。

任何想法来解决这个问题将是非常有益的。

我不喜欢回答我自己的问题,但在其他人认为这有帮助的情况下。

我不知何故解决了这个问题,尽pipe我不明白为什么问题首先发生。 正如我以为问题是在DropDown列表自动出现在非活动combobox。 为了避免这个问题,我做了下面的代码更改,问题没有解决,但旁路:

代替

 Private Sub ComboBox1_Change() ComboBox1.ListFillRange = "CountryOne" ComboBox1.DropDown End Sub 

我现在用

 Private Sub ComboBox1_Change() ComboBox1.ListFillRange = "CountryOne" If ComboBox1.ListCount <> 1 Then ComboBox1.DropDown End If End Sub 

当列表的长度是1时,添加的if子句将禁用自动出现的下拉列表 – 这意味着何时select了一个国家。 这里可以find'修复'的文件。

感谢Dee的贡献。