我有一个+-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
答案 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中的相应范围。