吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1872|回复: 7
收起左侧

[求助] vba关于取汉字拼音首字母的问题

[复制链接]
沧浪之水濯我心 发表于 2020-3-16 15:28
[Visual Basic] 纯文本查看 复制代码
'Attribute VB_Name = "模块1"
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


取完首字母后有些识别不了,请问是什么问题呢?如何才能做到全部汉字都可转化?
1.PNG
2.PNG

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

chxi 发表于 2020-3-16 15:50
看不明白
 楼主| 沧浪之水濯我心 发表于 2020-3-16 15:53

姓名取首字母,比如吾爱破解就变成wapj,有些汉字取不了,所以问问代码怎么改进
 楼主| 沧浪之水濯我心 发表于 2020-3-16 15:54
飞越彩泓 发表于 2020-3-16 15:46
感谢分享!!!!!!!!!!!!

咋地?问题还没解决,你感谢啥啊
苏紫方璇 发表于 2020-3-17 15:20
应该是你的表不对,例如这里就不连贯
ElseIf (tmp >= 52980 And tmp <= 53640) Then
getpychar = "x"
ElseIf (tmp >= 53679 And tmp <= 54480) Then
cube 发表于 2020-3-17 18:40
字库不够大,不够全面.
你需要一个足够大的字库.
1234561.jpg
 楼主| 沧浪之水濯我心 发表于 2020-3-17 19:15
cube 发表于 2020-3-17 18:40
字库不够大,不够全面.
你需要一个足够大的字库.

主要是得用vba批量操作,用到的时候都是好多名字,而且只要首字母。下午用char打出了所有汉字,结果发现还是有点麻烦,识别不出的我再替换吧
cube 发表于 2020-3-18 09:57
沧浪之水濯我心 发表于 2020-3-17 19:15
主要是得用vba批量操作,用到的时候都是好多名字,而且只要首字母。下午用char打出了所有汉字,结果发现 ...

就用截图那个字库吧,结果取第一个字符不就行了.
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-30 05:35

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表