在 Excel VBA 中,我尝试从命名表的列中提取唯一的值列表。我想将唯一的值列表存储在一个变量中,然后可以将其用于进一步处理。我使用以下代码来执行此操作:
Dim SomeData As Range
Set SomeData = ThisWorkbook.Sheets("Tab") _
.ListObjects("TableName").ListColumns("ColumnName").DataBodyRange
SomeData.RemoveDuplicates Columns:=1, Header:=xlNo
但是,此代码会从基础表中删除重复项 - 我不想这样做。
有没有一种简单的方法可以从表中提取数据并将其存储在一个变量中,我可以在不更改指定表中的基础数据的情况下操作该变量?
在删除重复项之前保存数据范围并稍后恢复它的解决方法。
Sub rest()
Dim lo As ListObject
Set lo = Range("A1").ListObject
backup = lo.DataBodyRange 'save original table
lo.DataBodyRange.RemoveDuplicates 1, xlNo
filtered = lo.DataBodyRange 'this is the filtered result
lo.DataBodyRange.Resize(UBound(backup)) = backup 'restore original data
End Sub