1
我有一列值如INC0001,INC0002等。我需要找到重複值並追加_count而不使用2 For循環。
例如。對於以下DATA-
INC001
INC002
INC003
INC001
INC002
INC001
輸出應該
INC001
INC002
INC003
INC001_1
INC002_1
INC001_2
。Excel VBA - 如何搜索列中的重複值並追加_count
我已經完成了它使用2 for循環,但它需要大約15-20分鐘約15000記錄。任何更有效的方式在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
如果您有現有的代碼,然後包括它在你的問題可能會阻止它被關閉。我會建議也許使用這個字典 - 使用鍵的值並存儲實例號作爲值。你只需要一個循環。 –
您可以先對數據進行排序嗎?如果是這樣,它會使VBA更簡單,甚至可以使用公式而不是VBA。 – BruceWayne
使用一步一步的forumla應用程序,你可以解決沒有寫入VBA 1.複製數據到一個新的col 2.刪除重複項 3.使用COUNTIF來計算髮生 4.對密鑰的追加計數 – dgorti