VBA Eliminați duplicatele

Excel are o caracteristică care este utilizată pentru eliminarea valorilor duplicate din celulele, rândurile sau tabelul selectate. Ce se întâmplă dacă acest proces automatizăm în VBA? Da, procesul de eliminare a duplicatului poate fi automatizat în VBA sub formă de Macro. În procesul de eliminare a duplicatului, odată finalizat, valorile unice rămân în listă sau tabel. Aceasta poate fi cu ajutorul funcției Remove Duplicates din VBA.

Cum se utilizează Excel VBA Eliminare duplicatele?

Vom învăța cum să folosiți un duplicat VBA Eliminare cu câteva exemple în excel.

Puteți descărca acest șablon VBA Eliminare Duplicate Excel aici - Șablon VBA Eliminare Duplicate Excel

Exemplul # 1 - Elimină duplicatele VBA

Avem o listă de numere începând de la 1 la 5 până la rândul 20 doar în coloana A. După cum putem vedea în imaginea de mai jos, toate numerele se repetă de mai multe ori.

Acum meseria noastră este să eliminăm duplicatul din listă de către VBA. Pentru aceasta, accesați fereastra VBA apăsând tasta F11.

În acest exemplu, vom vedea, utilizarea de bază a modului în care VBA Elimină duplicatele pot funcționa pentru numere. Pentru aceasta, avem nevoie de un modul.

Pasul 1: Deschideți un nou modul din meniul Insert care se află în fila Meniu Insert.

Pasul 2: odată deschis, scrieți subcategoria VBA Remove Duplicate, așa cum se arată mai jos.

Cod:

 Sub VBARemoveDuplicate1 () End Sub 

Pasul 3: În procesul de eliminare a duplicatului, mai întâi trebuie să selectăm datele. Pentru aceasta, în VBA vom selecta funcția până când aceasta va coborî pentru a selecta lista completă de date, așa cum se arată mai jos.

Cod:

 Sub VBARemoveDuplicate1 () Selection.End (xlDown) .Selectare Sub Sub 

Pasul 4: Acum vom selecta Gama de celule sau coloane A. selectate. Se va reduce până vom avea datele într-o anumită coloană. Nu numai până la rândul 20.

Cod:

 Sub VBARemoveDuplicate1 () Selection.End (xlDown) .Select Range (Selection, Selection.End (xlUp)). Select Select Sub 

Pasul 5: Acum selectați intervalul de celule într-o foaie deschisă în prezent, așa cum se arată mai jos. Aceasta va activa coloana completă. Am selectat coloana A până la sfârșit.

Cod:

 Sub VBARemoveDuplicate1 () Selection.End (xlDown) .Select Range (Selection, Selection.End (xlUp)). Selectează ActiveSheet.Range ("A: A"). Sub final 

Pasul 6: Acum folosiți funcția RemoveDuplicate aici. Aceasta va activa comanda pentru a elimina valorile duplicate din secvența coloanelor 1. Dacă există mai multe coloane, atunci numărul va fi adăugat și separat cu virgule în paranteze ca (1, 2, 3, …).

Cod:

 Sub VBARemoveDuplicate1 () Selection.End (xlDown) .Select Range (Selection, Selection.End (xlUp)). Selectează ActiveSheet.Range ("A: A"). RemoveDuplicates Columns: = 1, End Sub 

Pasul 7: Acum vom folosi comanda Header care va muta cursorul în celula din partea superioară a foii, care se află mai ales în antetul oricărei tabele.

Cod:

 Sub VBARemoveDuplicate1 () Selection.End (xlDown) .Select Range (Selection, Selection.End (xlUp)). Select Select ActiveSheet.Range ("A: A"). RemoveDuplicates Columns: = 1, Header: = xlYes End Sub 

Pasul 8: Acum compilați pașii codului apăsând tasta F8. Odată terminat, faceți clic pe butonul Redare pentru a rula la cod, așa cum se arată mai jos.

După cum putem vedea, numărul duplicat este șters din coloana A și rămâne doar un număr unic.

Exemplul # 2 - Elimină duplicatele VBA

În acest exemplu, vom vedea cum puteți elimina valorile duplicate din mai multe coloane. Pentru aceasta, vom lua în considerare aceeași listă duplicată folosită în exemplul 1. Însă, într-un mod nou, am adăugat încă 2 coloane cu aceleași valori, după cum se arată mai jos.

Aceasta este o altă metodă cu un tip puțin diferit de structură de cod.

Pasul 1: Deschideți un nou modul în VBA și scrieți subcategoria în VBA Remove Duplicate. Dacă este posibil, dați-i un număr de secvență, astfel încât să fie mai bine să alegeți codul potrivit pentru a rula.

Cod:

 Sub VBARemoveDuplicate2 () End Sub 

Pasul 2: Mai întâi, selectați foaia completă din VBA, așa cum se arată mai jos.

Cod:

 Sub VBARemoveDuplicate2 () Cells.Select End Sub 

Pasul 3: Acum selectați foaia deschisă curent cu comanda ActiveSheet și selectați coloanele A până la C, așa cum se arată mai jos.

Cod:

 Sub VBARemoveDuplicate2 () Cells.Select ActiveSheet.Range ("A: C"). Sub final 

Pasul 4: Acum selectați comanda RemoveDuplicates și apoi selectați tabloul de coloane de la 1 la 3, așa cum se arată mai jos.

Cod:

 Sub VBARemoveDuplicate2 () Cells.Select ActiveSheet.Range ("A: C"). RemoveDuplicates Columns: = Array (1, 2, 3), End Sub 

Pasul 5: La ultima utilizare, comanda antet trebuie inclusă în procesul de eliminare a duplicatelor ca xlYes, așa cum se arată mai jos.

Cod:

 Sub VBARemoveDuplicate2 () Cells.Select ActiveSheet.Range ("A: C"). RemoveDuplicates Columns: = Array (1, 2, 3), Header: = xlYes End Sub 

Pasul 6: Acum compilați codul complet și rulați. După cum putem vedea mai jos, foaia completă este selectată, dar valorile duplicate sunt eliminate din coloanele A, B și C, păstrând doar un număr unic.

Exemplul # 3 - Elimină duplicatele VBA

Aceasta este o altă metodă de eliminare a duplicatului, care este cel mai simplu mod de a elimina duplicatul în VBA. Pentru aceasta, vom folosi datele pe care le-am văzut în exemplul 1 și, de asemenea, prezentate mai jos.

Pasul 1: Acum mergeți VBA și scrieți din nou subcategoria VBA Remove Duplicates. Am dat secvența fiecărui cod arătat că are o pistă adecvată.

Cod:

 Sub VBARemoveDuplicate3 () End Sub 

Pasul 2: Acesta este un model destul de similar pe care l-am văzut în exemplul 2, dar o metodă rapidă de a scrie un cod pentru eliminarea duplicatului. Pentru aceasta, începeți să selectați direct intervalul de coloane așa cum se arată mai jos. Am păstrat limita până la a 100- a celulă a coloanei A începând de la 1 urmată de un punct (.)

Cod:

 Sub VBARemoveDuplicate3 () Interval ("A1: A100"). Sub final 

Pasul 3: Acum selectați comanda RemoveDuplicates așa cum se arată mai jos.

Cod:

 Sub VBARemoveDuplicate3 () Interval ("A1: A100"). RemoveDuplicates End Sub 

Pasul 4: Acum selectați coloanele A ca și cu comanda Coloanele cu secvența de 1. Și după aceea includeți antetul coloanelor selectate, precum și prezentate mai jos.

Cod:

 Sub VBARemoveDuplicate3 () Interval ("A1: A100"). RemoveDuplicates Coloane: = 1, Antet: = xlYes End Sub 

Pasul 5: Acum compilați-l apăsând tasta F8 și rulați. Vom vedea că codul nostru a eliminat numerele duplicate din coloanele A și numai valorile unice aparțin.

Beneficiile VBA Elimină duplicatele

  • Este util în eliminarea rapidă a duplicatelor din orice gamă de celule.
  • Este ușor de implementat.
  • Când lucrați la un set de date uriaș, unde eliminarea duplicatului devine dificilă manual și atârnă fișierele și VBA Remove Duplicates funcționează într-o secundă pentru a ne oferi valorile unice.

Contra de VBA Eliminați duplicatele

  • Nu este benefic să folosiți VBA Remove Duplicates pentru date foarte mici, deoarece se poate realiza cu ușurință prin funcția Remove Duplicate disponibilă în bara de meniu Date.

Lucruri de amintit

  • Intervalul poate fi selectat în două moduri. Odată ce este selectată limita de celule, așa cum se arată în exemplul-1, iar alta selectează coloana completă până la sfârșit, așa cum se arată în exemplul 1.
  • Asigurați-vă că fișierul este salvat în Macro-Enabled Excel, care ne va permite să utilizăm codul scris de mai multe ori, fără să îl pierdem.
  • Puteți păstra valoarea funcției antet ca Da, deoarece va conta și antetul în timp ce eliminați valorile duplicate. Dacă nu există o valoare duplicată cu numele de antet nume, atunci păstrarea acesteia ca No nu va dăuna nimic.

Articole recomandate

Acesta a fost un ghid pentru eliminarea duplicatelor VBA. Aici am discutat despre cum să utilizăm Excel VBA Elimină duplicatele împreună cu exemple practice și șablon Excel descărcabil. De asemenea, puteți parcurge și alte articole sugerate -

  1. Lucrul cu VBA Cell Cell
  2. Ștergerea unei rânduri în VBA
  3. Cum se utilizează Excel VBA Transpose?
  4. Cum să remediați eroarea 1004 folosind VBA

Categorie: