gpt4 book ai didi

vba - 配置作业编号以包含前缀、年、月和下一个序号

转载 作者:行者123 更新时间:2023-12-03 07:33:39 24 4
gpt4 key购买 nike

我使用的是 Excel 2013(64 位)。

我目前正在处理用于记录事件的用户表单。但是,我一直无法在 VBA 中计算出如何得出代码,该代码将导致上一行中的下一个可用数字填充用户窗体中的 INC 数字文本框 (ADD_txtSEC_INC_No)(然后相应地更新电子表格)。

结束格式应显示为IncYYYYMM-00000 - 例如:Inc201603-00456(这正是我需要的)

我目前有一个代码(如下)可以显示下一个数字,但它不是所需的格式。 Sample of New form in development

Private Sub UserForm_Initialize()
'** SECURITY INCIDENT NUMBER IN TEXTBOX
'**WORKS

Me.ADD_txtSEC_INC_No.Enabled = True
Dim irow As Long
Dim ws As sw_SecIncidentDetails
Set ws = sw_SecIncidentDetails

'find last data row from database'
irow = ws.Cells(Rows.Count, 1).End(xlUp).Row

Me.ADD_txtSEC_INC_No.Text = ws.Cells(irow, 1).value + 1

End Sub

附加信息当此表格上线时,我需要让它从以前的号码继续,例如,如果我们当前工作表上的公司号码,在 A 行是 Inc201603-00456 那么我需要你的初始化表单时转到下一个公司编号的代码,例如 Inc201603-00457我们不能从 0000 开始编号,因为那样会使序列从之前的条目中消失。抱歉,如果这听起来令人困惑。

B 列中,我用名为 ADD_Date_Recorded_TXT 的文本框填充单元格,该文本框的编码为:

       Me.ADD_Date_Recorded_TXT.value = Format(Now, "dd/mm/yyyy")

我提到这个是因为下面 David 的解决方案似乎将日期格式更改为 mm/dd/yyyy(不明白为什么这样做)——我需要我所有的日期都保留为 dd/mm/yyyy 格式.

我只是想我会在“附加信息”中解决上面的这些问题,而不是单独回复每个问题

最佳答案

我发现使用最后一行来构建新 ID 非常危险。如果第一列未排序,您可能会得到重复的标识符。所以我会首先搜索第一列中的最大数字,然后递增该数字并最终格式化一个新的标识符:

Private Sub UserForm_Initialize()
'** SECURITY INCIDENT NUMBER IN TEXTBOX
'**WORKS

Me.ADD_txtSEC_INC_No.Enabled = True
Dim nextNumber As Long
Dim nextId As String
Dim ws As sw_SecIncidentDetails
Set ws = sw_SecIncidentDetails

' get the next record number from the first column
nextNumber = GetNextRecordNumber(ws.UsedRange.Columns(1))

' build the new record id
nextId = "Inc" & Format(Now, "yyyymm") & Format(nextNumber, "-00000")

Me.ADD_txtSEC_INC_No.text = nextId

End Sub

Private Function GetNextRecordNumber(source As Range) As Long
Dim max$, v
For Each v In source.value
If InStr(1, v, "Inc") = 1 And v > max Then max = v
Next
If max <> Empty Then GetNextRecordNumber = Split(max, "-")(1) + 1
End Function

关于vba - 配置作业编号以包含前缀、年、月和下一个序号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36234613/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com