Eliminați duplicatele din Excel VBA - Macrocomenzi Excel ușoare

Cuprins

Mai jos vom analiza un program în Excel VBA acea elimină duplicatele.

Situatie:

În coloana A avem 10 numere. Vrem să eliminăm duplicatele din aceste numere și să plasăm numerele unice în coloana B.

1. În primul rând, declarăm patru variabile. toAdd de tip Boolean, uniqueNumbers de tip Integer, i de tip Integer și j de tip Integer.

Dim toAdd As Boolean, uniqueNumbers As Integer, i As Integer, j As Integer

2. Apoi, scriem primul număr al coloanei A în coloana B, deoarece primul număr este întotdeauna „unic”.

Celule (1, 2). Valoare = Celule (1, 1). Valoare

3. Inițializăm două variabile. Tocmai am adăugat un număr în coloana B, deci inițializăm Numere unice cu valoarea 1. Am setat la Adăugare la Adevărat presupunând că următorul număr trebuie adăugat și (acest lucru nu este neapărat adevărat).

Numere unice = 1
toAdd = Adevărat

Trebuie să stabilim dacă al doilea număr este „unic” sau nu. Acest lucru se poate face într-un mod foarte ușor. Numai dacă numărul nu este deja în coloana B, al doilea număr trebuie adăugat la coloana B.

4. De asemenea, trebuie să verificăm acest lucru pentru al treilea număr, al patrulea număr și așa mai departe. Începem o buclă For Next pentru aceasta.

Pentru i = 2-10

5. Acum vine cea mai importantă parte a programului. Dacă al doilea număr este egal cu unul dintre numerele din coloana B (până acum avem doar un număr unic), setăm la Adăugare la fals deoarece în acest caz nu vrem să adăugăm acest număr! (nu este „unic”). În acest moment, numărul unic este încă egal cu 1, dar numărul unic poate fi o listă întreagă. Pentru a verifica această listă întreagă, avem nevoie de o altă buclă For Next. Din nou: dacă numărul pe care dorim să-l adăugăm este egal cu unul dintre numerele din această listă, toAdd va fi setat la False și numărul nu va fi adăugat. Adăugați următoarele linii de cod:

Pentru j = 1 Pentru numere unice
Dacă celule (i, 1). Valoare = celule (j, 2). Valoare Apoi
toAdd = False
End If
Următorul j

6. Doar dacă toAdd este încă True și nu este setat la False, Excel VBA trebuie să adauge numărul în coloana B. În același timp, creștem Numere unice cu 1, deoarece avem încă un număr unic. Următoarele linii de cod fac treaba:

Dacă toAdd = True Then
Celule (Numere unice + 1, 2). Valoare = Celule (i, 1). Valoare
uniqueNumbers = uniqueNumbers + 1
End If

7. În cele din urmă, am setat la Adăugare la adevărat presupunând că următorul număr (al treilea număr) trebuie adăugat. Din nou, acest lucru nu este neapărat adevărat.

toAdd = Adevărat

8. Nu uitați să închideți bucla.

Apoi eu

9. Plasați macrocomanda într-un buton de comandă și testați-o.

Rezultat:

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave