我的列的值为-INC0001,INC0002等。我需要找到重复的值,并在不使用2 For循环的情况下将_count附加到它们。
对于前者用于跟踪数据 -
INC001
INC002
INC003
INC001
INC002
INC001
输出应为
INC001
INC002
INC003
INC001_1
INC002_1
INC001_2
。
我使用2 for循环完成了它,但大约15000条记录大约需要15-20分钟。在excel宏中更有效的方法吗?
现有代码
Sub AppendMacro()
Worksheets("Sheet1").Activate
Dim lngMaxRow As Long
lngMaxRow = Range("A" & Rows.count).End(xlUp).Row
Dim count As Integer
For i = 2 To lngMaxRow - 1 Step 1
Dim incNum As String
incNum = ActiveSheet.Range("A" & i).Value
count = 1
If (Len(incNum) = 11) Then
For j = i + 1 To lngMaxRow Step 1
If (incNum = ActiveSheet.Range("A" & j).Value) Then
ActiveSheet.Range("A" & j).Value = ActiveSheet.Range("A" & j).Value & "_" & count
count = count + 1
End If
Next
End If
Next
End Sub
答案 0 :(得分:2)
Sub AppendMacro()
Dim cell As Range
With Worksheets("Sheet1")
With .Range("A1", .Cells(.Rows.count, 1).End(xlUp))
For Each cell In .Cells
cell.Value = cell.Value & "_" & WorksheetFunction.CountIf(.Parent.Range(.Cells(1), cell), cell.Value & "_*")
Next
.Replace what:="_0", replacement:="", lookat:=xlPart
End With
End With
End Sub