重置VBA中的列表框select

我正试图在Excel VBA中重置一个列表框。 目前,当我使用userform1.hide函数的forms消失,但是当我用.show函数打开它时,它仍然有以前的select。 作为一个相对较新的人可以帮助吗?

列表框的代码如下所示:

Sub CommandButton1_Click() 'Filter by Country Dim item As Long, dict As Object Dim wsData As Worksheet Set wsData = Sheets("TPID") Set dict = CreateObject("Scripting.Dictionary") With ListBox1 For item = 0 To .ListCount - 1 If .Selected(item) Then dict(.List(item)) = Empty Next item End With With wsData.ListObjects("Table_ExternalData_1").Range .AutoFilter Field:=1 If dict.Count Then _ .AutoFilter Field:=1, criteria1:=dict.keys, Operator:=xlFilterValues End With 'Filter by Continent Dim item1 As Long, dict1 As Object Dim wsData1 As Worksheet Set wsData1 = Sheets("TPID") Set dict1 = CreateObject("Scripting.Dictionary") With ListBox2 For item1 = 0 To .ListCount - 1 If .Selected(item1) Then dict1(.List(item1)) = Empty Next item1 End With With wsData1.ListObjects("Table_ExternalData_1").Range .AutoFilter Field:=4 If dict1.Count Then _ .AutoFilter Field:=4, criteria1:=dict1.keys, Operator:=xlFilterValues End With End Sub 

在此先感谢大家,

如果你只想清除select(因为你使用隐藏,而不是卸载),那么使用:

 me.listbox1.value = "" 

如果是多选列表框,则需要使用:

 Me.listbox1.MultiSelect = fmMultiSelectSingle Me.listbox1.Value = "" Me.listbox1.MultiSelect = fmMultiSelectMulti 

这将通过将其设置为单选来清除select,然后清除select,然后再次将function设置为多选。

如果要清除整个列表框(您select的选项),请使用:

 Me.listbox1.clear 

试试这个代码来清除VBA中的列表框

 Private Sub clearListBox() Dim iCount As Integer For iCount = 0 To Me!ListBox1.ListCount Me!ListBox1.Selected(iCount) = False Next iCount End Sub 

隐藏并显示不起作用。 如果你想使用“暴力”,使用卸载然后加载,但它会重置所有内容(不只是单选button),并将消耗内存(如果你的表单不包含数以千计的组件,并且您的计算机是最近等等等等,但会好起来的)

另一种做你想做的事的方法是简单地通过所有的单选button并取消全部选中

要重置在列表框中select的表观项目,请尝试:

 ListBox1.ListIndex = -1 ListBox2.ListIndex = -1 

之后在列表框控件中将没有明显的项目。

你可以使用

 Private Sub clearListBox() 'Clears the listbox Do Until ListBox1.ListCount = 0 Me!ListBox1.RemoveItem(0) Loop End Sub