我们已经定义了前缀(例如ABC,GIJ,THK,JLK等等),并且想要在用户想要为这些前缀中的每一个生成一个数字时创建一个序号,如下所示:
ABC0000,ABC0001,ABC0002 ...... ABC9999对于GIJ0000,GIJ0001,GIJ0002 ...... GIJ9999也是如此。
下面给出了为上述逻辑编写的代码,但它没有达到要求:
Private Sub CommandButton1_Click()
With ComboBox1.Value
Dim a, b As String
Dim i, j, k, l, x, q, m, temp As Long
a = ComboBox1.Text
i = Application.WorksheetFunction.Match(a, Range("A1:A1000"), 0)
j = Cells(i, 2)
l = j * 1000
For q = 2 To 100
For m = 2 To 100
If Cells(q, m).Value < 0 Then
k = m
End If
Next
Next
x = l
If Cells(i, GC).Value = temp Then
click = click + 1
Else
click = 0
End If*
Cells(i, GC) = x + click
TextBox1.Text = x + click
temp = Cells(i, GC).Value
End With
GC = GC + 1
End Sub
答案 0 :(得分:0)
答案 1 :(得分:0)
从你的代码中,我假设你有一个名为ComboBox1的ComboBox,一个名为CommandButton1的CommandButton和一个名为TextBox1的TextBox,所有这些都在UserForm上,而ComboBox1则填充了前缀的可能值。
以下代码将所选前缀的下一个可用代码(1)放入TextBox。
Private Sub CommandButton1_Click()
Dim a As String
Dim i As Long, j As Long
a = ComboBox1.Text
i = Application.WorksheetFunction.Match(a & "9999", Range("A1:A1000"), 1)
j = CLng(Mid$(Cells(i, 1).Value, Len(a) + 1)) + 1
TextBox1.Text = a & Format(j, "0000")
End Sub
你的代码也做了很多不必要的事情。
(1)仅在数据被排序时。