使用Excel VBA,如何从命名表中提取数据并操作数据而不更改原始表中的数据?

问题描述 投票:0回答:1

在 Excel VBA 中,我尝试从命名表的列中提取唯一的值列表。我想将唯一的值列表存储在一个变量中,然后可以将其用于进一步处理。我使用以下代码来执行此操作:

    Dim SomeData As Range
     
    Set SomeData = ThisWorkbook.Sheets("Tab") _
    
        .ListObjects("TableName").ListColumns("ColumnName").DataBodyRange  
    
    SomeData.RemoveDuplicates Columns:=1, Header:=xlNo

但是,此代码会从基础表中删除重复项 - 我不想这样做。

有没有一种简单的方法可以从表中提取数据并将其存储在一个变量中,我可以在不更改指定表中的基础数据的情况下操作该变量?

excel vba
1个回答
0
投票

在删除重复项之前保存数据范围并稍后恢复它的解决方法。

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
© www.soinside.com 2019 - 2024. All rights reserved.