Czy ktoś mógłby mi dać kilka wskazówek, jak rozwiązać następujący problem:VBA, usuwanie duplikatów z tablicy
Załóżmy Mam bloku danych w programie Excel 2010, 100 wierszy o 3 kolumnach.
Kolumna C zawiera kilka duplikatów, powiedzieć, że zaczyna się jak 1,1,1, 2,3,4,5 ....., 97,98
Korzystanie z VBA, chciałbym, aby usunąć duplikaty wierszy, zgodnie z kolumną C, więc pozostaję z 1,2,3, ....., 97, 98, tj. tylko 98 wierszy i 3 kolumny.
Wiem, że istnieje przycisk, który mogę kliknąć w Excel 2010, aby to zrobić, ale chcę to zrobić w VBA (ponieważ próbowałem tego i z jakiegoś powodu, wtrąca się reszta mojego kodu i podaje błędnie wyniki).
Ponadto, chciałbym zrobić to w macierzy, a następnie wklej wyniki w arkuszu, zamiast metod, takich jak Application.Worksheetfunction.countif (.....
Więc coś takiego:
.Dim myarray() as Variant
myarray=cells(1,1).Currentregion.value
Dim a as Long
For a=1 to Ubound(myarray,1)
'something here to
Next a
To powoduje usunięcie rzeczywistych wierszy z arkusza, natomiast pytanie dotyczyło usunięcia duplikatów w VBA.Plus każde usunięcie wiersza powinno zawsze następować od dołu do góry, aby uniknąć pomijania wierszy. – brettdj
@brettdj Oba bity kodu będą działać, aby usunąć duplikaty. Pytający chciał to zrobić w VBA, najlepiej z tablicami (w takim przypadku może on łatwo modyfikować pętlę, aby iterować przez wiersze tablicy zamiast zakresu, a następnie dodawać tylko unikalne elementy do oddzielnej tablicy). Jeśli spojrzysz na kod, zobaczysz, że usunięcie wiersza przechodzi od dołu do góry (wartość 'rowCount' zmniejsza się). :) – Zairja
Cóż, pytanie jest zatytułowane * VBA, usuń duplikaty z tablicy *. Dobrze trafiłeś, że twój kod idzie w dół do sposobu, w jaki używasz '.Count', chociaż w tym przypadku pytający może potrzebować określić, czy pierwsze wystąpienie powinno być przechowywane na górze czy na dole. – brettdj