Ištrinkite pasikartojančius įrašus naudodami „Microsoft Excel“ VBA

Anonim

Šiame straipsnyje mes sukursime makrokomandą, kad pašalintume pasikartojančius įrašus iš duomenų.

Neapdorotus duomenis sudaro darbuotojų duomenys, įskaitant vardą, amžių ir lytį.

Loginis paaiškinimas

Mes sukūrėme makrokomandą „RemovingDuplicate“, kad pašalintume pasikartojančius įrašus iš duomenų. Ši makrokomanda pirmiausia iš eilės gauna duomenis ir tada palygina dviejų eilučių iš eilės reikšmes, kad sužinotų pasikartojančius įrašus.

Kodo paaiškinimas

ActiveSheet.Sort.SortFields.Clear

Aukščiau pateiktas kodas naudojamas bet kokiam ankstesniam duomenų rūšiavimui pašalinti.

ActiveSheet.Sort.SortFields.Add raktas: = Diapazonas (Selection.Address), _

Rūšiuoti: = xlSortOnValues, tvarka: = xlAuncending, DataOption: = xlSortTextAsNumbers

Pirmiau pateiktas kodas naudojamas rūšiuoti duomenis pirmajame stulpelyje didėjančia tvarka.

I = ActiveSheet.Cells (Rows.Count, Selection.Column). End (xlUp). Eilė iki pasirinkimo. Eilutė + 1 veiksmas -1

Aukščiau pateiktas kodas naudojamas atvirkštiniam kilpavimui, pradedant nuo paskutinės eilutės iki pasirinktos eilutės.

ActiveSheet. Eilutės (i). Ištrinti poslinkį: = xlUp

Aukščiau pateiktas kodas naudojamas ištrinti eilutę ir perkelti žymeklį į viršutinę eilutę.

Sekite toliau pateiktą kodą

 Parinktis „Explicit Sub RemovingDuplicate ()“ Deklaruojantys kintamieji „Dim i As Long“ Išjungiamas ekrano atnaujinimas Application.ScreenUpdating = False Range ("A11"). Pasirinkite ActiveSheet.Sort.SortFields.Clear 'Rūšiuoti duomenis didėjančia tvarka ActiveSheet.Sort.SortFields.Add Raktas: = Range (Selection.Address), _ SortOn: = xlSortOnValues, Order: = xlAscending, DataOption: = xlSortTextAsNumbers With ActiveSheet.Sort .SetRange Range (Selection.Offset (1, 0), ActiveSheet.Cells, Rows.Count, Selection.End (xlToRight) .Column) .End (xlUp)). Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End with 'Looping through the all cell For i = ActiveSheet .Cells Count, Selection.Column). End (xlUp). Row to Selection.Row + 1 Step -1 'Dviejų gretimų langelių vertės palyginimas pasikartojantiems įrašams If ActiveSheet.Cells (i, Selection.Column) .Value = ActiveSheet.Cells ( (i - 1), Selection.Column). Value then 'Ištrinti pasikartojantį įrašą ActiveSheet.Rows (i). Ištrinti shift: = xlUp End If Next i' Įjungiamas ekranas aukštyn datos Application.ScreenUpdating = True End Sub 

Jei jums patiko šis tinklaraštis, pasidalykite juo su draugais „Facebook“. Be to, mus galite sekti „Twitter“ ir „Facebook“.

Mes norėtume išgirsti jūsų nuomonę, praneškite mums, kaip galime pagerinti savo darbą ir padaryti jį geresnį. Rašykite mums el