Генерация альфа-числового уникального идентификатора для каждой строки в Excel VBA - PullRequest
0 голосов
/ 11 октября 2019

Я пытаюсь создать код VBA, который бы выполнял следующую задачу

Всякий раз, когда в столбце Имя есть запись, VBA автоматически генерирует идентификаторы для каждой строки.

id       Name
NL-1     abc
NL-2     fljf
NL-3     fdgfd
NL-4     dsfsd
NL-5     dsfdsf

Я использую следующий сценарий VBA, и он отлично работает, когда это просто цифры.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim maxNumber, x As Long
If Not Intersect(Target, Range("B:B")) Is Nothing Then
    If Target.Rows.Count > 1 Then Exit Sub
    If Cells(Target.Row, 1) > 0 Then Exit Sub
    maxNumber = Application.WorksheetFunction.Max(Range("A:A"))
    Target.Offset(0, -1) = maxNumber + 1
End If
End Sub

Вывод вышеуказанного кода

id  Name
1   abc
2   ada
3   skfn

Нокогда я пытаюсь ввести «NL =» в код, где я сталкиваюсь с проблемами.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim maxNumber, x As Long
If Not Intersect(Target, Range("B:B")) Is Nothing Then
    If Target.Rows.Count > 1 Then Exit Sub
    If Cells(Target.Row, 1) > 0 Then Exit Sub
    maxNumber = Application.WorksheetFunction.Max(Range("A:A"))
    Target.Offset(0, -1) = "NL-" & maxNumber + 1
End If
End Sub 

Вывод этого кода будет

id     Name
NL-1   abc
NL-1   ada
NL-1   skfn

Пожалуйста, дайте мне знать, если кто-то можетвыяснить это. Это было бы огромной помощью. Благодаря.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...