EXCEL获取拼音首字母

发布时间 2023-08-02 09:44:22作者: 哥伦布

Excel 2016
按组合键ALT+F11调出VB窗口——插入——模块(复制代码到新模块中,复制完后始可关闭VB窗口)

复制以下代码到模块中
Function getpychar(char)
    tmp = 65536 + Asc(char)

    If (tmp >= 45217 And tmp <= 45252) Then

    getpychar = "A"

    ElseIf (tmp >= 45253 And tmp <= 45760) Then

    getpychar = "B"

    ElseIf (tmp >= 45761 And tmp <= 46317) Then

    getpychar = "C"

    ElseIf (tmp >= 46318 And tmp <= 46825) Then

    getpychar = "D"

    ElseIf (tmp >= 46826 And tmp <= 47009) Then

    getpychar = "E"

    ElseIf (tmp >= 47010 And tmp <= 47296) Then

    getpychar = "F"

    ElseIf (tmp >= 47297 And tmp <= 47613) Then

    getpychar = "G"

    ElseIf (tmp >= 47614 And tmp <= 48118) Then

    getpychar = "H"

    ElseIf (tmp >= 48119 And tmp <= 49061) Then

    getpychar = "J"

    ElseIf (tmp >= 49062 And tmp <= 49323) Then

    getpychar = "K"

    ElseIf (tmp >= 49324 And tmp <= 49895) Then

    getpychar = "L"

    ElseIf (tmp >= 49896 And tmp <= 50370) Then

    getpychar = "M"

    ElseIf (tmp >= 50371 And tmp <= 50613) Then

    getpychar = "N"

    ElseIf (tmp >= 50614 And tmp <= 50621) Then

    getpychar = "O"

    ElseIf (tmp >= 50622 And tmp <= 50905) Then

    getpychar = "P"

    ElseIf (tmp >= 50906 And tmp <= 51386) Then

    getpychar = "Q"

    ElseIf (tmp >= 51387 And tmp <= 51445) Then

    getpychar = "R"

    ElseIf (tmp >= 51446 And tmp <= 52217) Then

    getpychar = "S"

    ElseIf (tmp >= 52218 And tmp <= 52697) Then

    getpychar = "T"

    ElseIf (tmp >= 52698 And tmp <= 52979) Then

    getpychar = "W"

    ElseIf (tmp >= 52980 And tmp <= 53640) Then

    getpychar = "X"

    ElseIf (tmp >= 53679 And tmp <= 54480) Then

    getpychar = "Y"

    ElseIf (tmp >= 54481 And tmp <= 62289) Then

    getpychar = "Z"

    Else '如果不是中文,则不处理

    getpychar = char

    End If

End Function

'逐个取ASC码

Function getpy(str)

    For i = 1 To Len(str)

        getpy = getpy & getpychar(Mid(str, i, 1))

    Next i

End Function

回到Excel里面,使用函数=getpy(...),读取拼音首字母