如何在一个列中过滤数据,然后在链接到另一列中的值以过滤数据

时间:2019-04-10 12:39:16

标签: excel vba

我有一个+-15000行的数据库。在U列中,我需要过滤模型代码。在H列中,我列出了唯一的资产编号。多个模型,每个模型具有唯一的资产编号。因此,对于每个过滤后的模型代码,我都需要在H列中使用唯一资产编号之一,然后将其复制并粘贴到A列中。Sheet2我可以使用以下代码进行过滤,但是如何在H列中获得一个唯一值? / p>

Sub SumGroups()
    Dim lastCode As Long, lastFiltCode As Long

    'Determine Last Row in Column U (Unfiltered Codes)
     With Worksheets("Database") lastCode = .Range("U" & .Rows.Count).(xlUp).Row

    'Filter Unique Codes into Column A Sheet2
    .Range("U2:U" & lastCode).AdvancedFilter Action:=xlFilterCopy, _
            CopyToRange:=Worksheets("Sheet2").Range("A1"), Unique:=True
    End With
End Sub

1 个答案:

答案 0 :(得分:1)

尽管我会说最简单的方法是使用数据透视表,但是如果您需要使用VBA的解决方案,则下面是代码的解决方案。

将数据复制到Sheet2后,可以使用RemoveDuplicates函数来仅保留如下所示的唯一值。

我还没有检查这是否可行,但是从我的角度来看应该如此。

Dim lastCode As Long, lastFiltCode As Long

'Determine Last Row in Column U (Unfiltered Codes)
 With Worksheets("Database") lastCode = .Range("U" & .Rows.Count).(xlUp).Row

'Filter Unique Codes into Column A Sheet2
.Range("U2:U" & lastCode).AdvancedFilter Action:=xlFilterCopy, _
        CopyToRange:=Worksheets("Sheet2").Range("A1"), Unique:=True
End With
'Use Header:=xlNo below is Sheet2 doesn't have header
Worksheets("Sheet2").Range("A1:A100").RemoveDuplicates Columns:=Array(1), Header:=xlYes
End Sub

请将上面的 Range(“ A1:A100”)更改为您在Sheet2中的相应范围。