標題:
[發問]
編號方式-英文+年月+流水編號2碼.出來沒按順序
[打印本頁]
作者:
kkooo15
時間:
2019-8-11 23:45
標題:
編號方式-英文+年月+流水編號2碼.出來沒按順序
本帖最後由 kkooo15 於 2019-8-11 23:47 編輯
問題﹕編號方式-英文+年月+流水編號2碼.出來沒按順序
按新增的時候應該要跳C190805,為什麼他會跳到C190813?
[attach]31146[/attach]
Private Sub Button1_Click()
Call 新增編號
End Sub
Private Sub Button3_Click()
Call 新增資料
End Sub
Sub 新增編號()
Set wSh = Sheets("工作表1")
Dim i As Integer
i = 4
Do
i = i + 1
If wSh.Cells(i, 3) = "" Then Exit Do
If TBox1.Value = "C" & Application.Text(Date, "YYMM") & Right("00" & Number + 1, 2) Then
Number = Number + 1
End If
TBox1.Value = "C" & Application.Text(Date, "YYMM") & Right("00" & Number + 1, 2)
Loop
End Sub
Sub 新增資料()
Set wSh = Sheets("工作表1")
'防呆
If TBox1 = "" Or TBox2 = "" Or TBox3 = "" Then MsgBox ("資料輸入不全。") '結束視窗提示:Exit Sub
Dim i As Integer
i = 4
Do
i = i + 1
If wSh.Cells(i, 3) = "" Then Exit Do
If TBox1.Text = wSh.Cells(i, 3) Then
MsgBox ("合約編號重複,請重新輸入。") '結束視窗提示
Exit Sub
End If
Loop
k = 0
For j = 3 To 5
k = k + 1
wSh.Cells(i, j) = Me("TBox" & k).Value
Next
MsgBox ("編號" & TBox1.Text & "合約,新增完成。") '結束視窗提示
End Sub
複製代碼
附件﹕
[attach]31145[/attach]
作者:
ikboy
時間:
2019-8-12 12:41
衹是編號可以簡化一下:
Private Sub UserForm_Initialize()
Dim ym$, Myr&
ym = "C" & Format(Date, "YYMM")
Myr = [c65536].End(3).Row
a = Cells(Myr, "c")
TBox1.Value = ym & Format(IIf(Left(a, 5) = ym, Val(Right(a, 2)), 0) + 1, "00")
End Sub
複製代碼
作者:
kkooo15
時間:
2019-8-12 18:33
回復
2#
ikboy
非常謝謝,把程式變短了,而且也完成我的需要。
程式碼如下﹕
Private Sub UserForm_Initialize()
Dim ym$, Myr&
'Long 的型態宣告字元為 &
'String 的型態宣告字元為 $
ym = "C" & Format(Date, "YYMM")
'ym = "C"開頭 + 年(2碼)月
Myr = [c65536].End(3).Row
'Myr = C行最下面往上找到有字的那一格
a = Cells(Myr, "c")
'a = Cells(Myr那列,C欄)
TBox1.Value = ym & Format(IIf(Left(a, 5) = ym, Val(Right(a, 2)), 0) + 1, "00")
'TBox1 = ym=[c+年+月] & C行最下面往上找到有字的那一格如果= ym的前5個字元
'就5個字元後面加2碼並加1
'最後把資料放到TBox1
End Sub
複製代碼
檔案如下﹕(有需要的自取)
[attach]31149[/attach]
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)