为Excel VBA中的每一行生成Alpha数字唯一ID

时间:2019-10-11 18:07:11

标签: excel vba

我正在尝试构建将执行以下任务的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

请让我知道是否有人可以解决这个问题。这将是巨大的帮助。 谢谢。

0 个答案:

没有答案