Const prefix = "ABS-" '接頭辞
Const tbl = "0123456789ABCEFGHJKLMNPRSTUVWXYZ" '採番時に参照するコード表
'''
'''採番を作成
'''0,33,1025,32769の行数をデバッグしたらわかるはず
Sub makeSerialNum()
Dim max_col As Long: max_col = getMaxCol()
Dim s As String
For i = 0 To max_col - 1
n = i
x = ""
If i = 0 Or i = 33 Or i = 1025 Then
Debug.Print i
End If
Do
a = n Mod 32
c = Mid(tbl, a + 1, 1)
x = c & x
b = Int(n / 32)
If b = 0 Then
s = prefix + Right("00000" + x, 5) + "0"
Sheet1.Cells(i + 1, 5) = s
Else
n = b
End If
Loop While b > 0
Next i
End Sub
'''
'''採番する列元に最大行数を取得
'''
Function getMaxCol() As Long
Dim i As Long: i = 1
Do
If Sheet1.Cells(i, 8) = Empty Then
Exit Do
End If
i = i + 1
Loop While True
i = i - 1 '1で相殺する
getMaxCol = i
End Function
VBA采番、最高の採番コード
最新推荐文章于 2021-02-16 21:53:24 发布