40分,求自动寻找下一个编号方案解决办法

40分,求自动寻找下一个编号方案40分,求自动寻找下一个编号方案编号规则:共6位,前2位由英文字母组成,起始为

40分,求自动寻找下一个编号方案
40分,求自动寻找下一个编号方案
'编号规则:
'共6位,前2位由英文字母组成,起始为AA,后4位由4位数字组成,起始为0001,
'顺序为:   AA0001,AA0002,...AA9999,AB0001,AB0002,...AZ9999,BA0001,BA0002...
'最后一个是:   ZZ9999
'现已知一个编号,求下一个编号
因英文O,I和阿拉伯数字0,1太接近了,故要求前2位英文部分屏遮掉英文O,I

[解决办法]
Public Function GetNextID(ByVal theID As String) As String
Dim i As Long, J As Long
Dim tmpStr1 As String, tmpStr2 As String, tmpStr3 As String
Dim tmpOutStr As String
Dim BitAdd As Boolean

BitAdd = True
tmpStr2 = Right(UCase(theID), 4)
tmpStr1 = Left(UCase(theID), 2)
If tmpStr2 <> "9999 " Then
tmpStr2 = Format((tmpStr2 + 1), "0000 ")
BitAdd = False
tmpOutStr = tmpStr1 & tmpStr2
GetNextID = UCase(tmpOutStr)

Else
tmpStr2 = Right(tmpStr2 + 1, 4)

For i = 2 To 1 Step -1
tmpStr3 = Mid(tmpStr1, i, 1) '&Egrave;&iexcl;&Ograve;&raquo;&Icirc;&raquo;

If BitAdd = True Then
BitAdd = False

J = Asc(tmpStr3)

If J = 78 Then
J = 80
tmpStr3 = Chr(J)
Else
Select Case J
Case 65 To 89 'A - Y
J = J + 1
Case Else
J = 65 'Z&frac12;&oslash;&Icirc;&raquo;&micro;&Atilde;A
BitAdd = True '±ê&frac14;&Ccedil;&frac12;&oslash;&Icirc;&raquo;
End Select
tmpStr3 = Chr(J)
End If
End If
tmpOutStr = tmpStr3 & tmpOutStr
Next i

tmpOutStr = tmpOutStr & tmpStr2 '& tmpOutStr
GetNextID = UCase(tmpOutStr)
End If
End Function