1

わかりました、これは私が持っている番号付けシステムのスタイルです

A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
AA
AB
AC
AD
....
B0
B1
B2
B3
B4
B5
B6
B7
B8
B9
BA
BB
BC
....
C0
C1
etc

C9を渡すことができ、CAを返す関数が必要です

明確にするために、ルールは次のようになります

A0-> A9 次に AA -> AZ B0 -> B9 BA -> BZ

したがって、2 番目の文字はこのシーケンスに従います

0 1 2 3 4 5 6 7 8 9 ABCDEFGHIJKLMNOPQRSTU VWXYZ

その後、同じシーケンスを使用して最初の桁が増加します

4

1 に答える 1

2

これはあなたがしようとしていることですか?ロジックはASC、数字の を取得し、それを 1 ずつ増やします (条件が適用されます)。

Sub sample()
    Dim sCheck As String

    '~~> Uncomment any of the below to test
    'sCheck = "AZ"
    'sCheck = "B9"
    'sCheck = "ZZ"
    'sCheck = "C9"

    Debug.Print GetNext(sCheck)
End Sub

Function GetNext(s As String) As String
    If s = "" Then Exit Function

    Dim s1 As String, s2 As String

    s1 = Left(s, 1)
    s2 = Right(s, 1)

    Select Case UCase(s2)

    Case "Z"
        If s1 = "Z" Then
            GetNext = "You have reached the end of the sequence"
            Exit Function
        End If

        s1 = Chr(Asc(s1) + 1)
        s2 = "0"
    Case "9"
        s2 = "A"
    Case Else
        s2 = Chr(Asc(s2) + 1)
    End Select

    GetNext = s1 & s2
End Function
于 2013-09-16T10:05:11.213 に答える