我正在尝试构建将执行以下任务的VBA代码
只要“名称”列中有一个条目,VBA就会自动为每一行生成ID。
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
请让我知道是否有人可以解决这个问题。这将是巨大的帮助。 谢谢。