我正在尝试在Excel VBA中当一个表单关闭时“重置”列表框。目前,当我使用userform1.hide函数时,表单会消失,但是当我使用.show函数再次打开它时,它仍然保留先前的选择。作为一个相对新手,有谁能帮忙吗?
列表框的代码如下:
列表框的代码如下:
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
大家好,提前感谢您的帮助。
.MultiSelect
;要取消多选 ListBox 中的所有项,需要像这样进行循环For Each varItem in .ItemsSelected : .Selected(varItem) = False : Next
。 - martin.lindenlauf