我正在为销售线索创建数据条目UserForm
(对于VBA来说是新的)。收集的所有数据都将写成“铅数据”工作表。
每条线索都需要一个唯一的LeadID
。这需要填充在用户窗体的文本框中,并与所有其他信息一起写到ID列中的"Lead Data"
中。
我正在努力寻找一种方法
查找“铅数据”上使用的最后一个ID,如果已经不存在,则设置为1。
为此添加1并将TextBox的值设置为此值
我已经在各个论坛上进行了一些挖掘,并建议使用以下代码,但这未引用“铅数据”
对于这应该在“表单激活”事件还是“初始化”上,我也不清楚。
Private Sub UserForm_Activate()
Dim LstRw As Long
LstRw = .Cells(Rows.Count, "I").End(xlUp).Row
Col.A after adding 1 to it.
Me.tbLeadID.Value = .Cells(LstRw, "I").Value + 1
End Sub
答案 0 :(得分:0)
您可以通过参考目标工作表来尝试此操作
Private Sub UserForm_Activate()
Dim LstRw As Long
LstRw = ThisWorkbook.Sheets("Lead Data").Cells(Rows.Count, "I").End(xlUp).Row
' Col.A after adding 1 to it.
Me.tbLeadID.Value = ThisWorkbook.Sheets("Lead Data").Cells(LstRw, "I").Value + 1
End Sub
答案 1 :(得分:0)
它应该在Initialize上,否则,如果您转开然后再次返回,它将增加。亲自 !会使用Max()在存储ID的任何列中找到最大值。如果那是A列,那么我会写
Private Sub UserForm_Initialize()
Me.TxtLeadID = Application.WorksheetFunction.Max(ThisWorkbook.Worksheets(1).Range("A:A")) + 1
End Sub
答案 2 :(得分:0)
感谢您的建议,这使我的理解向前发展。
我实际上走了一个略有不同的方向,并暂时解决了这个问题。
我已经在一个参考工作表上记录了一个NextID字段。
在初始化时将其拉回到用户窗体上。
tbLeadID.Value = ThisWorkbook.Worksheets("OtherRefData").Range("H2").Value
然后使用“保存”按钮保存用户表单时
ThisWorkbook.Worksheets("OtherRefData").Range("H2").Value =
ThisWorkbook.Worksheets("OtherRefData").Range("H2").Value + 1
欢迎对此进行反馈!