gpt4 book ai didi

vba - 在 VBA 中重置列表框选择

转载 作者:行者123 更新时间:2023-12-02 10:49:30 27 4
gpt4 key购买 nike

我试图在表单关闭时“重置”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

先谢谢大家了,

最佳答案

如果您只想清除选择(因为您使用的是隐藏,而不是卸载),则使用:

me.listbox1.value = ""

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

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

这将通过将其设置为仅单选然后清除选择,然后再次将功能设置为多选来清除选择。

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

Me.listbox1.clear

关于vba - 在 VBA 中重置列表框选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18654252/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com