在日常工作中遇到一些获取文本内容拼音首字母的需求,而Excel本身并没有提供一个很好的处理方法,这时候需要我们自己去编写一些宏指令去处理这类问题。
注:我们通常使用的Excel默认保存后缀为.xls或.xlsx这样的,不过这样的文件中是没法永久保存我们定义的宏指令。这里说一个可以在一个Excel文件中永久保存的宏指令的方法,就是将当前的文件另存为.xlsm为后缀的文件,这个文件是表示Excel是开启宏的,可以在内部编辑使用宏操作。
1、[打开.xlsm文件]
2、选择开发工具->打开Visual Basic编辑器,如图
3、点击运行宏,会出现如下界面,如图
4、输入宏名称,点击创建
5、出现??楸嗉翱?/strong>
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的单元格中的值,去掉首字母,并全部转换成小写,那么此需求则需要用...
- 需要读取excel中相对固定板式的数据内容,转化成标准表格数据进行数据处理,收集了各种处理方式,合并起来,形成了一...
- //获取拼音首字母(传入汉字字符串, 返回大写拼音首字母) - (NSString *)firstCharacto...