根据日期重新开始编号规则

Restarting number sequence based on date

我希望有人能提供帮助。我正在尝试创建一个引用系统,该系统将创建一个每天重置的 UID。该参考将遵循用户首字母、今天的日期和当天记录的数字的结构。例如

计数器是我每天要重置的,所以在 16 日它被重置为 001

我有一个代码可以获取号码,但它不能与日期一起动态工作。有人可以帮忙吗?

Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim Nextnum As Long
Dim Ini as String

Ini = Application.WorksheetFunction.Vlookup(Application.Username), ws1.range("IniLookup"), 4, 0)

Set ws1 = Worksheets("Lookups")
Nextnum = ws.Range("AB2").End(xlDown).Value + 1

Set ws2 = Worksheets("SMEXP")

With ws2
    .Range("B15") = Ini & " - " &Format(Now(), "yyyymmdd") & "- " & Nextnum
End With

请尝试下一种方式:

.Range("B15").value = Ini & " - " & Format(Date, "yyyymmdd") & " - " & Format(NextNum, "000")

作为 Long,我想 NextNum 类似于 34 等等...

为了每天重新初始化NextNum,您应该更换

Nextnum = ws.Range("AB2").End(xlDown).Value + 1

If ws.Range("AC" & ws.rows.count).End(xlUp).Value = Date Then
        NextNum = ws.Range("AB2").End(xlDown).Value + 1
        ws.Range("AB2").End(xlDown).Offset(1).Value = NextNum
        ws.Range("AC" & ws.rows.count).End(xlUp).Offset(1).Value = Date
  Else
        NextNum = 1
        ws.Range("AB2").End(xlDown).Offset(1).Value = NextNum
        ws.Range("AC" & ws.rows.count).End(xlUp).Offset(1).Value = Date
  End If

当然,AC:AC 列如果尚未使用则要使用。如果不可用,请将“AC”替换为任何其他可用的列。您应该只在该列的最后一行放置一次当前日期。