Удалить дубликаты и сортировать строки - PullRequest
0 голосов
/ 19 ноября 2018

У меня две отдельные проблемы, но они могут иметь одну и ту же причину.

Сначала мне нужно удалить все дублированные строки листа.Столбец A содержит индексное значение, которое импортируется как текстовое значение, поэтому «1», «2» ... и т. Д.

Я погуглил и получил эту строку кода:

VarAnzahlZeilen = 50 '(actually calculated values but they are correct (F8))
VarAnzahlSpalten =50 
     Worksheets("Filter").Range(Cells(2, 1), Cells(VarAnzahlZeilen, VarAnzahlSpalten)).RemoveDuplicates Columns:=Array(1), Header _
        :=xlNo

Ничего не происходит, все дублированные строки все еще находятся на листе.

То же самое со следующей строкой кода для сортировки оставшихся строк:

Worksheets("Filter").Range(Cells(2, 1), Cells(2, VarAnzahlSpalten)).Sort Key1:=Range("A2"), Header:=xlNo

Ничего не происходит.

Прямо здесь показывается тестовое окно msgbox, и комбинирование листа / диапазона также является правильным (может изменять значения).


Вся строка будет дубликатом, поскольку импорт работает таким образом, но поскольку индекс являетсяв столбце A я выбираю его в качестве индикатора для дубликата.

Это моя текущая версия:

With Worksheets("Filter")
    .Range(.Cells(2, 1), .Cells(VarAnzahlZeilen, VarAnzahlSpalten)).RemoveDuplicates Columns:=Array(1), Header:=xlNo
    .Range(.Cells(2, 1), .Cells(VarAnzahlZeilen, VarAnzahlSpalten)).Sort Key1:=Range("A2"), Header:=xlNo
End With

1 Ответ

0 голосов
/ 19 ноября 2018

Всегда указывайте ссылки на диапазон вплоть до объекта листа, в противном случае ссылка ActiveSheet будет подразумеваться неявно:

With Worksheets("Filter")
    .Range(.Cells(2, 1), .Cells(VarAnzahlZeilen, VarAnzahlSpalten)).RemoveDuplicates Columns:=Array(1), Header:=xlNo
End With

Точка в «.Cells ()» ссылается на объект, на который ссылается оператор «С» (то есть «Рабочие листы (« Фильтр »)»)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...