示例附件下载
Option Explicit
Option Compare Database
Function AutoCode(LastNumber As String, MyCode As String) As String
'例如以0123456789A~Z这36个字符为基础码计算009Z的下一个编码,那么009Z就是LastNumber, 这36个字符就是MyCode,这个函数的计算结果=00A0,即009Z的下一个编码就是00A0
Dim MyCode_R As String 'MyCode最右边的字符
Dim i As Integer
Dim LastNumber_len As Byte 'LastNumber的字符个数
Dim AndOne As Boolean
MyCode_R = Right(MyCode, 1)
LastNumber_len = Len(LastNumber)
AndOne = True
For i = LastNumber_len To 1 Step -1
If Mid(LastNumber, i, 1) = MyCode_R Then
If AndOne Then
AutoCode = Left(MyCode, 1) & AutoCode
Else
AutoCode = Mid(LastNumber, i, 1) & AutoCode
End If
Else
If AndOne Then
AutoCode = Mid(MyCode, InStr(1, MyCode, Mid(LastNumber, i, 1), 1) + 1, 1) & AutoCode
AndOne = False
Else
AutoCode = Mid(LastNumber, i, 1) & AutoCode
End If
End If
Next i
End Function