吾爱上有人提问,刚好有空就顺手写了一下,也搬回来以备后期使用。

'作者:yangcongs
'时间:2019.8.22
'版本:V1.0
 
Sub 宏1()
    Dim Ln         As String          '第一列最后一次出现的非空单元格的行号
    Dim str        As String          '单元格中的字符串
    Dim a          As Long            '字符串长度
    Dim str1       As String          '字符串中的最后一个字母
    Dim str2       As String          '字符串中的第一个字母
    Dim Fv         As String          '字符串最后一个字母的编码字符
    Dim Sv         As String          '字符串第一个字母的编码字符
    Dim AddV       As String          '下一个单元格应填入的字母序号
 
    '取第一列最后一次出现的非空单元格的行号
    Ln = Cells(Rows.Count, 1).End(xlUp).Row
    '取出该单元格中的字符串
    str = Range("A" + Ln).Value
    '获取该字符串的长度
    a = Len(str)
    '判断字符串中字母个数
 
    '如果只有一个字母
    If a = 1 Then
        '把字母转换成编码字符
        Fv = Right("000" + AscW(str), 4)
        Fv = Fv + 1
        '判断该字母的编码字符递增之后是否超出大写字母的界限
 
        If Fv > 90 Then
            '如果超出界限,则下一个单元格应填入"AA"
            Worksheets("Sheet1").Range("A" & Ln + 1).Value = "AA"
        Else
            '如果没有超出界限,则把该编码字符转换成字母
            AddV = Chr(Fv)
            '把该字母填入下一个单元格
            Worksheets("Sheet1").Range("A" & Ln + 1).Value = AddV
        End If
 
        '如果有两个字母
    ElseIf a = 2 Then
        '取出最后一个字母
        str1 = Right(str, 1)
        '取出第一个字母
        str2 = Mid(str, 1, 1)
        '把最后一个字母转换成编码字符
        Fv = Right("000" + AscW(str1), 4)
        Fv = Fv + 1
        '判断最后一个字母的编码字符递增之后是否超出大写字母的界限
 
        If Fv > 90 Then
            '如果超出界限,则最后一个字母递增之后应为"A"
            '此时需要把第一个字母递增
 
            '把第一个字母转换成编码字符
            Sv = Right("000" + AscW(str2), 4)
            Sv = Sv + 1
            '判断第一个字母的编码字符递增之后是否超出大写字母的界限
             
            If Sv > 90 Then
                '如果超出界限,此时两个字母都是"Z",到达上限
                '我给出的处理是弹出提示框,结束程序
                MsgBox ("已经到达最大行!")
                '退出程序
                Exit Sub
            Else
                '如果没有超出界限,把递增之后的第一个字母的编码字符转换成字母
                AddV = Chr(Sv)
                '把递增之后的字母填入下一个单元格
                Worksheets("Sheet1").Range("A" & Ln + 1).Value = AddV & "A"
            End If
        Else
            '如果没有超出界限,则第一个字母不变,第二个字母递增
 
            '把第二个字母递增之后的编码字符转换成字母
            AddV = Chr(Fv)
            '把递增之后的字母填入下一个单元格
            Worksheets("Sheet1").Range("A" & Ln + 1).Value = str2 & AddV
        End If
    End If
End Sub

成品链接