Excel VBAcombobox不允许从列表中select特定的项目

我的工作表中有一个dynamicsearch的combobox,dynamicsearch是通过在另一个工作表上的列表中search键入的字母来完成的。 search是由Excel公式完成的。 该列表是一个定义的范围,然后comboboxlistfillrange被设置为指定的范围。 当我打开下拉列表时,对于某些项目,combobox允许我从列表中进行select,而对于其他项目,select会随着我的select而消失。 我试图为什么这些物品消失。 名单很长(一万条),所以这种做法很慢,但我不知道这是否是问题。

我该如何解决这个问题? 有没有一种方法来为下拉列表中的鼠标点击select定义一个variables?

在此先感谢,Tali

这是我的代码:

Private Sub ComboBox1_Change() Sheets("PS").EnableCalculation = True ComboBox1.ListFillRange = "DropDownList" ComboBox1.DropDown End Sub Private Sub CommandButton21_Click() Dim PS As Worksheet Application.ScreenUpdating = False Application.ErrorCheckingOptions.BackgroundChecking = False Sheets("PharmaSoft").Select Set PS = Sheets("PS") SelectionA = PS.Range("J2").Value If ComboBox1.Value = SelectionA Then Range("J19") = "Pharmacy purchase price" Range("N19") = PS.Range("K2") Range("O19") = "ILS" Range("J21") = "Pharmacy selling price Incl.VAT" Range("N21") = PS.Range("L2") Range("O21") = "ILS" Range("J23") = "Package size" Range("N23") = PS.Range("M2") Range("J19:O23").Select With Selection.Font .ThemeColor = xlThemeColorDark1 .TintAndShade = 0 End With Selection.Font.Bold = True Application.ScreenUpdating = True Range("N19").Errors.Item(1).Ignore = True Range("N21").Errors.Item(1).Ignore = True Range("N23").Errors.Item(1).Ignore = True Else MsgBox "Please select a product", vbCritical, "Error" End If Sheets("PS").EnableCalculation = False End Sub Private Sub CommandButton22_Click() Application.ScreenUpdating = False Sheets("PharmaSoft").Select ComboBox1.Value = Null Range("J19:O23").Value = Null Application.ScreenUpdating = True End Sub Also the code for the workbook: Private Sub Workbook_Open() Sheets("PharmaSoft").Select Application.ScreenUpdating = False Sheets("PharmaSoft").ComboBox1.Value = Null Range("J19:O23").Value = Null Application.ScreenUpdating = True End Sub 

虽然我不能评论你在做什么,因为你的search是按照你提到的Excel公式来完成的。 我知道通过combobox使用数据validation可以很快。 我使用的方法是按照这个页面 ,是非常快的。 在大约15k行的validation范围内,它几乎是瞬间的。 最好的部分是它提供自动完成。 因此,当您键入combobox中,该值不在列表中时,匹配一个字符前的条目消失。 这是一个很好的视觉提示,无论你select是否有效。 当然,你仍然可以用通常的方式使用下拉框。 唯一不利的一面是,在提供的链接编码,你必须双击进入自动完成模式。