美文网首页
Excel中获取单元格文本内容拼音首字母

Excel中获取单元格文本内容拼音首字母

作者: 王煜仁 | 来源:发表于2023-05-09 14:34 被阅读0次

在日常工作中遇到一些获取文本内容拼音首字母的需求,而Excel本身并没有提供一个很好的处理方法,这时候需要我们自己去编写一些宏指令去处理这类问题。
注:我们通常使用的Excel默认保存后缀为.xls或.xlsx这样的,不过这样的文件中是没法永久保存我们定义的宏指令。这里说一个可以在一个Excel文件中永久保存的宏指令的方法,就是将当前的文件另存为.xlsm为后缀的文件,这个文件是表示Excel是开启宏的,可以在内部编辑使用宏操作。

另存为
启用宏的工作簿

1、[打开.xlsm文件]
2、选择开发工具->打开Visual Basic编辑器,如图

开发工具
Visual Basic

3、点击运行宏,会出现如下界面,如图

运行宏

4、输入宏名称,点击创建

宏创建

5、出现模块编辑窗口

模块

6、删除窗口中的代码,将以下代码复制粘贴进去,然后保存

' 逐个取ASC码
Function Getpy(str)

    For i = 1 To Len(str)

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

    Next i

End Function

'获取单个文字的首字母方法
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"
    
    ElseIf (tmp = 53671) Then ' 修复“学”转义失效问题
    
    getpychar = "X"

    Else '不处理非中文文本
    
    getpychar = char

    End If

End Function

7、回到表格中,此时可以在表格中使用我们定义的两个宏(Getpy, getpychar)

使用自定义函数

8、用法,输入=Getpy(单元格坐标),回车即可

用法
结果

如果遇到无法转义的文本,可以调试一下宏代码,查看一下tmp的值,然后添加ElseIf判断即可。

遇到问题欢迎交流

相关文章

网友评论

      本文标题:Excel中获取单元格文本内容拼音首字母

      本文链接:https://www.haomeiwen.com/subject/dhvrsdtx.html