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