У меня есть список номеров (50 000+), и мне нужно добавить Id в конец каждой уникальной группы. Идентификатор находится в формате «- ###».Добавить уникальный идентификатор в список номеров - VBA
151022
151022
151020
150922
150715
150911
151014
151021
151020
151019
151019
151019
151020
мне нужно напечатать как этот
151022-001
151022-002
151020-001
150922-001
150715-001
150911-001
151014-001
151021-001
151020-002
151019-001
151019-002
151019-003
151020-002
настоящее время у меня этот код, который я нашел и слегка измененный. Если бы я мог заставить его начать подсчет уникальных значений при -002, то я считаю, что это решило бы.
Option Explicit
Sub test()
Dim uniqueCounter As New Scripting.Dictionary
Dim counter As Long
Dim rowCount As Long
Dim identifer As String
rowCount = ActiveCell.CurrentRegion.Rows.Count 'Whatever code you want to put in to calculate the last row
For counter = 1 To rowCount
identifer = Sheet1.Cells(counter, 1) 'Put whatever number of combination of cells which the row unique here (maybe it's just the one)
If uniqueCounter.Exists(identifer) Then
uniqueCounter(identifer) = CLng(uniqueCounter(CStr(Sheet1.Cells(counter, 1)))) + 1
Sheet1.Cells(counter, 2) = identifer & "-00" & uniqueCounter(CStr(Sheet1.Cells(counter, 1)))
Else
uniqueCounter.Add identifer, "0"
Sheet1.Cells(counter, 2) = identifer
End If
Next counter
End Sub
Это то, что он в настоящее время отображается:
151022 151022
151022 151022-001
151020 151020
150922 150922
150715 150715
150911 150911
151014 151014
151021 151021
151020 151020-001
151019 151019
151019 151019-001
151019 151019-002
151020 151020-002
Спасибо всем!
++ Вам когда-нибудь нужно писать VBA. :) – cyboashu
@cyboashu зачем изобретать колесо? –
Удивительный, отлично работал. Я попробовал аналогичную формулу, прежде чем обращаться к VBA, но по какой-то причине не работал правильно. Ура! –