Te anexo la macro.
Supongo que además de las columnas A, B y C tienes más columnas, entonces en esta parte de la macro, cambia la letra C por la última columna que tengas con datos.
SetRange h1.Range("A1:C" & u)
Por ejemplo si tu última columnas con datos es la "M" entonces en la macro debería quedar así:
SetRange h1.Range("A1:M" & u)
Sub BorrarFilas()
'Por.Dante Amor
'
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set h1 = Sheets("Hoja1")
Set h2 = Sheets.Add
'Set h2 = Sheets("Hoja4")
'h2.Cells.Clear
h1.Columns("C:C").Copy h2.[A1]
h1.Columns("B:B").Copy h2.[B1]
u = h1.Range("A" & Rows.Count).End(xlUp).Row
'
With h1.Sort
.SortFields.Clear
.SortFields.Add Key:=h1.Range("A2:A" & u), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.SortFields.Add Key:=h1.Range("B2:B" & u), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.SortFields.Add Key:=h1.Range("C2:C" & u), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.SetRange h1.Range("A1:C" & u)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'
h2.Range("A1:B" & u).RemoveDuplicates Columns:=Array(1, 2), Header:=xlYes
h2.Range("A1:B1").Copy h2.[D1]
For i = 2 To h2.Range("A" & Rows.Count).End(xlUp).Row
h2.Range("A" & i & ":B" & i).Copy h2.[D2]
If h1.FilterMode Then h1.ShowAllData
h1.Range("A1:C" & u).AdvancedFilter Action:=xlFilterInPlace, _
CriteriaRange:=h2.Range("D1:E2"), Unique:=False
'
u3 = h1.Range("A" & Rows.Count).End(xlUp).Row
fin = u3
If u3 > 2 Then
For j = u3 - 1 To 2 Step -1
If h1.Cells(j, "A").EntireRow.Hidden = False Then
h2.Cells(j, "G") = "x"
End If
Next
End If
Next
'
If h1.FilterMode Then h1.ShowAllData
For k = u To 2 Step -1
If h2.Cells(k, "G") = "x" Then
h1.Rows(k).Delete
End If
Next
h2.Delete
Application.ScreenUpdating = True
'
MsgBox "fin"
End Sub
Saludos.Dante Amor