Доброго времени суток! Необходимо организовать генерацию шифра для паспорта устройства. Шифр примерно такого содержания - АБВГ.ХХХХХХ.YYY ПС, где: АБВГ - не меняется ПС - не меняется X и Y - числа меняются. Начальное значение Y - 001
Необходимо организовать генерацию этого шифра с последующим сохранением в какой-то файл (архив) Что бы исключить повторения, при каждом создании шифра нужно сверяться с файлом (архив) Паспортов с одинаковым номером быть не должно.
Подскажите, пожалуйста, в какую строну двигаться?)
С макросами и VBA не сильно дружу, но хочу разобраться.
Sub GenerateNumberDialog()
GenerateNumber InputBox("Введите количество", "Генерация номеров", 1)
End Sub
Sub GenerateNumber(NN As Long)
Dim dic As Object
Set dic = CreateObject("Scripting.Dictionary")
Dim ii As Long
Dim ss As String
Dim cl As Range
For Each cl In ActiveSheet.UsedRange.Cells
ss = cl.Value
If cl.Value Like "АБВГ.######.### ПС" Then
ss = Mid(ss, 6, 6) & Mid(ss, 13, 3)
ii = ss
dic.Item(ii) = 0
End If
Next
Dim Application_Calculation As Long
Application_Calculation = Application.Calculation
Application.Calculation = xlCalculationManual
Dim jj As Long
Do
If jj >= NN Then Exit Do
ii = ii + 1
If ii = 1000000000 Then ii = 0
If Not dic.Exists(ii) Then
ss = "000000000" & ii
ss = Right(ss, 9)
ss = "АБВГ." & Left(ss, 6) & "." & Right(ss, 3) & " ПС"
With ActiveSheet
.Cells(.UsedRange.Row + .UsedRange.Rows.Count, 1).Value = ss
End With
dic.Item(ii) = 0
jj = jj + 1
End If
Loop
Application.Calculation = Application_Calculation
End Sub