用相应的字母代替数字

问题描述 投票:0回答:2

我正在尝试格式化一些数字数据。对于范围内的每个单元格,我需要用相应的字母替换第一个数字。1=A,2=B等等,然后删除第2和第3个数字。

所以举个例子。

11111 --> A11
12345 --> A45
23456 --> B56
56789 --> E89

有什么简单的方法可以用格式化的方式来实现吗?我只需要上到E即可。

excel vba
2个回答
0
投票

这里有一个小小的VBA代码来完成你所需要的。

s = "56789"
s = Chr(Asc(Mid(s, 1, 1)) + 16) & Mid(s, 4)

0
投票

我的建议是

Option Explicit

Function conA_E(inp As String) As String
    Dim res As String
    Dim ch As String

    On Error GoTo EH
    ch = Left(inp, 1)

    If ch <= 6 And ch >= 1 Then
        res = Chr(Asc(Mid(inp, 1, 1)) + 16) & Mid(inp, 4)
    Else
        'res = ch & Mid(inp, 4) ' In Case 2nd and 3rd digit should always be deleted
        res = inp               ' No change if first digit is bigger than 5
    End If


    conA_E = res

    Exit Function

EH:
    conA_E = inp

End Function

Sub TestIt()
    Dim inp As String
    inp = "1214222"

    Debug.Print conA_E(inp)
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.