Удалить дубликаты VBA удаляет больше, чем просто дубликаты

Я пытаюсь создать код, который будет добавлять новые строки в таблицу, а затем удалять дубликаты на основе информации из одного из столбцов этой таблицы. Я не очень хорошо разбираюсь в VBA, поэтому большинство моих кодов записываются и настраиваются. Моя проблема здесь в том, что как только код достигает части «Удалить дубликаты», он удаляет больше, чем просто дубликаты, т. Е. У меня изначально 20 записей, я добавляю еще 10, из которых 5 являются дубликатами, поэтому в конечном результате у меня должно остаться 25 исходных строк. , к сожалению, мой код удаляет больше, и вместо 25 ожидаемых строк я получаю только 17, так что меньше исходной суммы!

Я был бы признателен, если бы вы помогли мне понять, почему это происходит и как это можно исправить.

Sub Add_New_Orders()

Макрос Add_New_Orders

Sheets("Source1_DateRange").Select
Range("DateRange[[Customer]:[Order No]]").Select
Selection.Copy
Sheets("Overview").Select
Range("B7").Select
Selection.End(xlDown).Offset(1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Application.CutCopyMode = False
ActiveSheet.Range("Overview[#All]").RemoveDuplicates Columns:=Array(3), Header:= _
    xlYes  ' I also tried to use Columns"=Column(3) with same result
    

Конец сабвуфера


person SandRule91    schedule 22.04.2021    source источник


Ответы (1)


Мне удалось найти решение самостоятельно. Не уверен, как это произошло, но теперь он работает, как и ожидалось. Я добавил 2 строки в код, и это каким-то образом решило проблему для меня. Я действительно считаю, что, поскольку я не выбрал/указал столбец, из которого я пытался удалить дубликаты, код искал все дубликаты в моей таблице, а не только в столбце 3.

Sub Add_New_Orders
Sheets("Source1_DateRange").Select
Range("DateRange[[Customer]:[Order No]]").Select
Selection.Copy
Sheets("Overview").Select
Range("B7").Select
Selection.End(xlDown).Offset(1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Application.CutCopyMode = False
Range("Overview[[#All],[Order no]]").Select ' NEW ADDED LINE
Range("C9").Activate ' NEW ADDED LINE
ActiveSheet.Range("Overview[#All]").RemoveDuplicates Columns:=3, Header:= _
    xlYes
    

Конец сабвуфера

person SandRule91    schedule 28.04.2021