我仍然是一个新手,所以如果我问一个愚蠢的问题,那就好了,但这是我目前的问题。我开始使用用户表单为数据输入在excel中创建一个大型归档集合的数据库。简单的一点是,为了帮助识别集合中的每个项目,我想为每个项目提供自己的ID。更难的是我希望ID还包含一个前缀,以便清楚它是什么类型的项目。例如,以下前缀;
Description | Prefix
-----------------------
Newsletter | NEW
Minutes | Min
Photograph | Pho
并且要添加的挑战是让ID在其自己的前缀下是顺序的(尽管它们没有被分组在一起)所以ID列表可能最终会像这样;
NEW1
NEW2
PHO1
PHO2
PHO3
MIN1
NEW3
MIN2
如果您能提出任何建议来帮助我实现这一目标,我将非常感激。提前谢谢。
答案 0 :(得分:2)
这假设一个Listbox
表单有三个选项,Button
生成下一个记录ID,Textbox
显示它。
它假定在激活表单时现有ID位于ActiveSheet的A列中:
Private Sub UserForm_Activate()
With Me.ListBox1
.AddItem "PHO"
.AddItem "NEW"
.AddItem "MIN"
End With
End Sub
Private Sub CommandButton1_Click()
Dim ws As Excel.Worksheet
Dim Category As String
Set ws = ActiveSheet
Category = Me.ListBox1.Value
Me.TextBox1 = Me.ListBox1 & Application.Evaluate("=MAX(IFERROR(SUBSTITUTE('" & ws.Name & "'!A1:A10," & """" & Category & """" & ","""")*1,0))") + 1
End Sub
它使用Application.Evaluate,它评估数组公式,就好像它已输入单元格一样。如果将公式输入单元格并且A1:A10中有值,并且您在列表框中选择了“NEW”,则它将如下所示:
以下是表格中的结果:
答案 1 :(得分:0)
在数据库中,最好让您的ID代码完全没有意义。也就是说,不要将“项目类型”包含在您的唯一ID中。它应该是一个自己的领域。 ID代码应该 多于唯一标识符。