- 适用需求_对于Excel表中,想要获取某一列的汉字拼音首字母
- 首先,点击alt+f11打开Microsoft Visual Basic for Applications(也就是offices中带的VB的编辑器),然后在最上方工具栏点击_插入->模块,在弹出的编辑框中,将下面代码拷入,保存,关闭.
代码(这代码是在网上找的,略微修改了一下)如下:
# 想要大写的话,就把里面的a,b......等换为大写的A,B......就行
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
- 点击你想显示首字母的那一列的第一个单元格,输入公式=getpy(某),就可以了
- 附:如果单元格只显示公式,不显示转换结果,name就点击本列头,将本列类型设置为数值,就可以了
注:日常遇见问题处理后的总结,仅供参考!