Public Function basIncrStr(strIn As String) As String
Dim MyChrs() As String
Dim strTemp As String
Dim Idx As Integer
Dim MyChr As String * 1
Dim MaxChr As String * 1
Dim CarryChr As String * 1
Dim blnCryFlg As Boolean
ReDim MyChrs(Len(strIn))
Idx = 1
Do While Idx <= Len(strIn)
MyChrs(Idx - 1) = Mid(strIn, Idx, 1)
Idx = Idx + 1
Loop
Idx = UBound(MyChrs) - 1
Do While Idx > 0
MyChr = MyChrs(Idx)
Select Case IsNumeric(MyChr)
Case Is = True 'Numeric thinggy 0 : 9
MaxChr = "9"
CarryChr = "0"
Case Is = False 'Alpha | Punctuation | ...
MaxChr = "Z"
CarryChr = "A"
If (Not (UCase(MyChr) >= "A" And UCase(MyChr) <= "Z")) Then
'OOPs = We have some Punctuation / White space to Deal w/
MyChrs(Idx) = MyChr
GoTo NxtChr
End If
End Select
If (MyChr < MaxChr) Then
'Found a char not at limit. Process
MyChrs(Idx) = Chr((Asc(MyChrs(Idx)) + 1))
Exit Do
Else
MyChrs(Idx) = CarryChr
blnCryFlg = True
End If
NxtChr:
Idx = Idx - 1
Loop
Idx = 0
Do While Idx < UBound(MyChrs)
strTemp = strTemp & MyChrs(Idx)
Idx = Idx + 1
Loop
basIncrStr = strTemp
End Function