首页 > 解决方案 > 如何清除列表框中的数据

问题描述

好的,我认为这很简单,但显然我仍然没有找到解决方案。

所以我想通过单击一个按钮来清除我的列表框。

我使用过lstDatabase.RowSource = vbNullString,但它会擦除整个数据以及我的标题。

如何清除列表框中的数据,但保留标题?

标签: excelvbalistboxuserform

解决方案


您可以使用联合方法组合两个范围。如果您的整个数据在名为“Sheet1”的工作表上的 Range("A1:E10") 中,其中 Range("A1:E1") 是标题, Range("A2:E10") 是记录;然后您可以定义两个范围 - 一个标题和一个记录。将它们与 Union 方法结合使用。在填充 lstDatabase 列表框时使用组合范围。当你想清除列表框时,设置 rowsource = headers 范围。

Dim header as Range, records as Range, allData as Range
Set header = Sheets("Sheet1").Range("A1:E1")
Set records = Sheets("Sheet1").Range("A2:E10")
'Combine header and records into allData
Set allData = Union(header, records)
'Populating the listbox like
lstDatabase.RowSource = allData
'Clear the listbox like, keeping header only.
lstDatabase.RowSource = header

推荐阅读