У меня есть база данных +- 15000 строк. В столбце U есть коды моделей, которые мне нужно отфильтровать. В столбце H у меня есть список уникальных номеров активов. Несколько моделей, каждая с уникальным номером актива. Поэтому мне нужен один из уникальных номеров активов в столбце H для каждого отфильтрованного кода модели, который затем копируется и вставляется в столбец A Sheet2. Я могу фильтровать с помощью приведенного ниже кода, но как мне получить одно уникальное значение в столбце H?
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
Хотя я бы сказал, что самый простой способ сделать это — использовать Сводная таблица, ниже приведено решение для вашего кода, если вам нужно решение с использованием VBA.
Вы можете использовать функцию RemoveDuplicates после копирования данных на Лист2, чтобы сохранить только уникальные значения, как показано ниже.
Я еще не проверял, работает ли это, но, насколько я вижу, должно.
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
Пожалуйста, измените Диапазон("A1:A100") выше на соответствующий диапазон в Sheet2.
спасибо, ваша идея удаления дубликатов отличная. Я не использовал ваш код, хотя.