Я пытаюсь исключить позиции, которые отменяют друг друга.
Например, ниже будут удалены две строки, которые добавляют к нулю (т. Е. 87,1 и -87,1).
-87.1
890
87.1
898989
Код, который я использую, в основном работает, но в тех случаях, когдаЕсть множество строк с одинаковыми значениями, которые удаляются все вместо одного подходящего значения для одного наблюдения.Например, ниже, я хотел бы, чтобы он отменил два из -87.1 и два из 87.1, но один будет оставшимся, потому что нет никакого числа, непосредственно смещающего его.
-87.1
890
87.1
898989
87.1
-87.1
-87.1
Sub x()
Dim n As Long, rData As Range
Application.ScreenUpdating = False
n = Range("C" & Rows.Count).End(xlUp).Row
Range("AV2:AV" & n).Formula = "=IF(I2=0,0,COUNTIFS($C$2:$C$" & n & ",C2,$I$2:$I$" & n & ",-I2))"
With ActiveSheet
.AutoFilterMode = False
.Rows(1).AutoFilter field:=48, Criteria1:=">0"
With .AutoFilter.Range
On Error Resume Next
Set rData = .Offset(1).Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible)
On Error GoTo 0
If Not rData Is Nothing Then
rData.EntireRow.Delete shift:=xlUp
End If
End With
.AutoFilterMode = False
End With
Application.ScreenUpdating = True
End Sub