Re: Question on a Chip Pearson macro

Tech Tip: Click here to run a free scan for Windows Errors and optimize PC performance



Those variables are left-overs from a more complicated macro from
which this one was adapted. They are not needed.


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com


<Hash@xxxxxxxxxxx> wrote in message
news:0BABf.11990$bF.8146@xxxxxxxxxxxxx
> All -
>
> It is with no little temerity that I post this question about a
> Chip
> Pearson macro found at:
>
> http://www.cpearson.com/excel/deleting.htm
>
> The subject is deleting duplicate rows. The code is below and
> I don't
> understand variables Col, C, and N.
>
> Col appears assigned and never used. N appears assigned and
> incremented, but never used. And C appears to be neither. My
> sense is
> that it should be
>
> V = Rng.Cells(r, Col).value
>
> and
>
> ...CountIf(Col, V) > 1 Then
>
> But I don't know, and I don't understand, particularly N and C.
> N is
> the number of deletions, but nothing seems to use N.
>
> Deleting Duplicate Rows is something I want to do.
>
> Thanks in advance, and awaiting enlightenment.
> ...best, Hash
>
>
> Public Sub DeleteDuplicateRows()
> '
> ' This macro deletes duplicate rows in the selection.
> Duplicates are
> ' counted in the COLUMN of the active cell.
>
> Dim Col As Integer
> Dim r As Long
> Dim C As Range
> Dim N As Long
> Dim V As Variant
> Dim Rng As Range
>
> On Error GoTo EndMacro
> Application.ScreenUpdating = False
> Application.Calculation = xlCalculationManual
>
> Col = ActiveCell.Column
>
> If Selection.Rows.Count > 1 Then
> Set Rng = Selection
> Else
> Set Rng = Active***.UsedRange.Rows
> End If
>
> N = 0
> For r = Rng.Rows.Count To 1 Step -1
> V = Rng.Cells(r, 1).Value
> If Application.WorksheetFunction.CountIf(Rng.Columns(1), V)
> > 1 Then
> Rng.Rows(r).EntireRow.Delete
> N = N + 1
> End If
> Next r
>
> EndMacro:
>
> Application.ScreenUpdating = True
> Application.Calculation = xlCalculationAutomatic
>
> End Sub


.


Quantcast