VBA 指定列去重,保留第一行

简单的代码

从原来这样的数据

去重后变成这样,

vbnet 复制代码
 Sub deleteduplicate()

 Dim maxcounts As Long
 Dim i As Long
 
 ''总行数
 maxcounts = Range("CO" & Rows.Count).End(xlUp).Row
 

 ''物料代码先去重
For i = maxcounts To 3 Step -1
 If Range("I" & i) = Range("I" & i - 1) Then
  Range("I" & i).ClearContents
 End If

Next

''其他项目再去重,去重时判断物料代码单元格是否为空,以免出现刚好上下两个物料重名 
For i = maxcounts To 3 Step -1
 If Range("C" & i).Value = Range("C" & i - 1).Value And Len(Range("I" & i).Value) = 0 Then
  Range("C" & i).ClearContents
 End If
 
 If Range("J" & i).Value = Range("J" & i - 1).Value And Len(Range("I" & i).Value) = 0 Then
  Range("J" & i).ClearContents
 End If
  
 If Range("BS" & i).Value = Range("BS" & i - 1).Value And Len(Range("I" & i).Value) = 0 Then
  Range("BS" & i).ClearContents
 End If
   

Next
  
 
 End Sub