在用户表单中输入数据时,VBA代码将自动转换为A列中的序列号

时间:2019-02-06 13:48:32

标签: excel vba userform

我有一个用户窗体,用户可以在其中填写数据,并将数据插入C到Z列中。我需要工作表或用户窗体中的代码来自动填充以id_token开始的序列号每次输入数据时,在A列中输入。

我尝试在BA00860下使用下面的代码,能够生成从Commandbutton_ClickBA00860的序列号,然后以BA00869开头但不能以{ {1}}。请更正我的代码,要求是BA01861BA00870BA00860,依此类推。

BA00870

1 个答案:

答案 0 :(得分:0)

请注意,此.NumberFormat = "00860"不是有效的数字格式。

您可以使用公式轻松完成此操作。假设您的第一个序列号像…一样写在A1中。

enter image description here

然后,您只需在单元格A2中使用公式=LEFT(A1,2) & TEXT(RIGHT(A1,5)+1,"00000")并将其复制下来即可得到以下内容:

enter image description here

在VBA中,您可以使用类似

Dim LastSN As String
LastSN = Range("A1").Value 'eg BA00860

Dim NextSN As String
NextSN = Left$(LastSN, 2) & Format$(Right(LastSN, 5) + 1, "00000")

根据注释的完整示例:

Sub Test()
    Dim LastSN As String
    LastSN = "BA00860"

    Dim NextSN As String
    NextSN = Left$(LastSN, 2) & Format$(Right(LastSN, 5) + 1, "00000")

    MsgBox "LastSN was: " & LastSN & vbCrLf & "NextSN is: " & NextSN
End Sub