VB6获取多个汉字拼音的首字母,vba字符串转拼音

本文详细介绍了如何在VB6环境中使用VBA编写函数,分别处理多个汉字和单个字符串,以获取其拼音的首字母。函数通过ASCII码范围映射实现中文字符到拼音首字母的转换。
摘要由CSDN通过智能技术生成

VB6获取多个汉字拼音的首字母,vba字符串转拼音

Function GetPY(ByVal StringABC As String) As String
    'vb 获取多个汉字拼音的首字母
    Dim Tmp As String, i As Long
    For i = 1 To Len(StringABC)
    Select Case Asc(Mid(StringABC, i, 1))
        Case -20319 To -20284: GetPY = GetPY & "A"
        Case -20283 To -19776: GetPY = GetPY & "B"
        Case -19775 To -19219: GetPY = GetPY & "C"
        Case -19218 To -18711: GetPY = GetPY & "D"
        Case -18710 To -18527: GetPY = GetPY & "E"
        Case -18526 To -18240: GetPY = GetPY & "F"
        Case -18239 To -17923: GetPY = GetPY & "G"
        Case -17922 To -17418: GetPY = GetPY & "H"
        Case -17417 To -16475: GetPY = GetPY & "J"
        Case -16474 To -16213: GetPY = GetPY & "K"
        Case -16212 To -15641: GetPY = GetPY & "L"
        Case -15640 To -15166: GetPY = GetPY & "M"
        Case -15165 To -14923: GetPY = GetPY & "N"
        Case -14922 To -14915: GetPY = GetPY & "O"
        Case -14914 To -14631: GetPY = GetPY & "P"
        Case -14630 To -14150: GetPY = GetPY & "Q"
        Case -14149 To -14091: GetPY = GetPY & "R"
        Case -14090 To -13319: GetPY = GetPY & "S"
        Case -13318 To -12839: GetPY = GetPY & "T"
        Case -12838 To -12557: GetPY = GetPY & "W"
        Case -12556 To -11848: GetPY = GetPY & "X"
        Case -11847 To -11056: GetPY = GetPY & "Y"
        Case -11055 To -10247: GetPY = GetPY & "Z"
        Case Else:  GetPY = GetPY & Mid(StringABC, i, 1)
    End Select
    Next
End Function
 Function GetPY2(ByVal strParmeter As String) As String
 '取字符串拼音首字母,Codeid=396
Dim intTmp As String, i As Long
For i = 1 To Len(strParmeter)
intTmp = Asc(Mid(strParmeter, i, 1))
If intTmp < Asc("啊") Then
GetPY2 = GetPY2 & "*"
ElseIf intTmp >= Asc("啊") And intTmp < Asc("芭") Then
GetPY2 = GetPY2 & "A"
ElseIf intTmp >= Asc("芭") And intTmp < Asc("擦") Then
GetPY2 = GetPY2 & "B"
ElseIf intTmp >= Asc("擦") And intTmp < Asc("搭") Then
GetPY2 = GetPY2 & "C"
ElseIf intTmp >= Asc("搭") And intTmp < Asc("蛾") Then
GetPY2 = GetPY2 & "D"
ElseIf intTmp >= Asc("蛾") And intTmp < Asc("发") Then
GetPY2 = GetPY2 & "E"
ElseIf intTmp >= Asc("发") And intTmp < Asc("噶") Then
GetPY2 = GetPY2 & "F"
ElseIf intTmp >= Asc("噶") And intTmp < Asc("哈") Then
GetPY2 = GetPY2 & "G"
ElseIf intTmp >= Asc("哈") And intTmp < Asc("击") Then
GetPY2 = GetPY2 & "H"
ElseIf intTmp >= Asc("击") And intTmp < Asc("喀") Then
GetPY2 = GetPY2 & "J"
ElseIf intTmp >= Asc("喀") And intTmp < Asc("垃") Then
GetPY2 = GetPY2 & "K"
ElseIf intTmp >= Asc("垃") And intTmp < Asc("妈") Then
GetPY2 = GetPY2 & "L"
ElseIf intTmp >= Asc("妈") And intTmp < Asc("拿") Then
GetPY2 = GetPY2 & "M"
ElseIf intTmp >= Asc("拿") And intTmp < Asc("哦") Then
GetPY2 = GetPY2 & "N"
ElseIf intTmp >= Asc("哦") And intTmp < Asc("啪") Then
GetPY2 = GetPY2 & "O"
ElseIf intTmp >= Asc("啪") And intTmp < Asc("期") Then
GetPY2 = GetPY2 & "P"
ElseIf intTmp >= Asc("期") And intTmp < Asc("然") Then
GetPY2 = GetPY2 & "Q"
ElseIf intTmp >= Asc("然") And intTmp < Asc("撒") Then
GetPY2 = GetPY2 & "R"
ElseIf intTmp >= Asc("撒") And intTmp < Asc("塌") Then
GetPY2 = GetPY2 & "S"
ElseIf intTmp >= Asc("塌") And intTmp < Asc("挖") Then
GetPY2 = GetPY2 & "T"
ElseIf intTmp >= Asc("挖") And intTmp < Asc("昔") Then
GetPY2 = GetPY2 & "W"
ElseIf intTmp >= Asc("昔") And intTmp < Asc("压") Then
GetPY2 = GetPY2 & "X"
ElseIf intTmp >= Asc("压") And intTmp < Asc("匝") Then
GetPY2 = GetPY2 & "Y"
ElseIf intTmp >= Asc("匝") And intTmp < 0 Then
GetPY2 = GetPY2 & "Z"
ElseIf (intTmp >= 65 And intTmp <= 91) Or (intTmp >= 97 And intTmp <= 123) Then
GetPY2 = GetPY2 & Mid(strParmeter, i, 1)
Else
GetPY2 = GetPY2 & "*"
End If
Next
End Function

Public Function Py(mystr As String) As String
'vb 获取汉字拼音的首字母
Dim i As Integer
i = Asc(mystr)
Select Case i
Case -20319 To -20284: Py = "A"
Case -20283 To -19776: Py = "B"
Case -19775 To -19219: Py = "C"
Case -19218 To -18711: Py = "D"
Case -18710 To -18527: Py = "E"
Case -18526 To -18240: Py = "F"
Case -18239 To -17923: Py = "G"
Case -17922 To -17418: Py = "H"
Case -17417 To -16475: Py = "J"
Case -16474 To -16213: Py = "K"
Case -16212 To -15641: Py = "L"
Case -15640 To -15166: Py = "M"
Case -15165 To -14923: Py = "N"
Case -14922 To -14915: Py = "O"
Case -14914 To -14631: Py = "P"
Case -14630 To -14150: Py = "Q"
Case -14149 To -14091: Py = "R"
Case -14090 To -13319: Py = "S"
Case -13318 To -12839: Py = "T"
Case -12838 To -12557: Py = "W"
Case -12556 To -11848: Py = "X"
Case -11847 To -11056: Py = "Y"
Case -11055 To -10247: Py = "Z"
Case Else: Py = mystr
End Select

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
想在excel中自动显示汉字拼音吗? 写一段VBA代码则轻松搞定: Function PinYin(Hz As String) Dim PinMa As String Dim MyPinMa As Variant Dim Temp As Integer, i As Integer, j As Integer PinMa = "a,20319,ai,20317,an,20304,ang,20295,ao,20292," PinMa = PinMa & "ba,20283,bai,20265,ban,20257,bang,20242,bao,20230,bei,20051,ben,20036,beng,20032,bi,20026,bian,20002,biao,19990,bie,19986,bin,19982,bing,19976,bo,19805,bu,19784," PinMa = PinMa & "ca,19775,cai,19774,can,19763,cang,19756,cao,19751,ce,19746,ceng,19741,cha,19739,chai,19728,chan,19725,chang,19715,chao,19540,che,19531,chen,19525,cheng,19515,chi,19500,chong,19484,chou,19479,chu,19467,chuai,19289,chuan,19288,chuang,19281,chui,19275,chun,19270,chuo,19263,ci,19261,cong,19249,cou,19243,cu,19242,cuan,19238,cui,19235,cun,19227,cuo,19224," PinMa = PinMa & "da,19218,dai,19212,dan,19038,dang,19023,dao,19018,de,19006,deng,19003,di,18996,dian,18977,diao,18961,die,18952,ding,18783,diu,18774,dong,18773,dou,18763,du,18756,duan,18741,dui,18735,dun,18731,duo,18722," PinMa = PinMa & "e,18710,en,18697,er,18696," PinMa = PinMa & "fa,18526,fan,18518,fang,18501,fei,18490,fen,18478,feng,18463,fo,18448,fou,18447,fu,18446," PinMa = PinMa & "ga,18239,gai,18237,gan,18231,gang,18220,gao,18211,ge,18201,gei,18184,gen,18183,geng,18181,gong,18012,gou,17997,gu,17988,gua,17970,guai,17964,guan,17961,guang,17950,gui,17947,gun,17931,guo,17928," PinMa = PinMa & "ha,17922,hai,17759,han,17752,hang,17733,hao,17730,he,17721,hei,17703,hen,17701,heng,17697,hong,17692,hou,17683,hu,17676,hua,17496,huai,17487,huan,17482,huang,17468,hui,17454,hun,17433,huo,17427," PinMa = PinMa & "ji,17417,jia,17202,jian,17185,jiang,16983,jiao,16970,jie,16942,jin,16915,jing,16733,jiong,16708,jiu,16706,ju,16689,juan,16664,jue,16657,jun,16647," PinMa = PinMa & "ka,16474,kai,16470,kan,16465,kang,16459,kao,16452,ke,16448,ken,16433,keng,16429,kong,16427,kou,16423,ku,16419,kua,16412,kuai,16407,kuan,16403,kuang,16401,kui,16393,kun,16220,kuo,16216," PinMa = PinMa & "la,16212,lai,16205,lan,16202,lang,16187,lao,16180,le,16171,lei,16169,leng,16158,li,16155,lia,15959,lian,15958,liang,15944,liao,15933,lie,15920,lin,15915,ling,15903,liu,15889,long,15878,lou,15707,lu,15701,lv,15681,luan,15667,lue,15661,lun,15659,luo,15652," PinMa = PinMa & "ma,15640,mai,15631,man,15625,mang,15454,mao,15448,me,15436,mei,15435,men,15419,meng,15416,mi,15408,mian,15394,miao,15385,mie,15377,min,15375,ming,15369,miu,15363,mo,15362,mou,15183,mu,15180," PinMa = PinMa & "na,15165,nai,15158,nan,15153,nang,15150,nao,15149,ne,15144,nei,15143,nen,15141,neng,15140,ni,15139,nian,15128,niang,15121,niao,15119,nie,15117,nin,15110,ning,15109,niu,14941,nong,14937,nu,14933,nv,14930,nuan,14929,nue,14928,nuo,14926," PinMa = PinMa & "o,14922,ou,14921," PinMa = PinMa & "pa,14914,pai,14908,pan,14902,pang,14894,pao,14889,pei,14882,pen,14873,peng,14871,pi,14857,pian,14678,piao,14674,pie,14670,pin,14668,ping,14663,po,14654,pu,14645," PinMa = PinMa & "qi,14630,qia,14594,qian,14429,qiang,14407,qiao,14399,qie,14384,qin,14379,qing,14368,qiong,14355,qiu,14353,qu,14345,quan,14170,que,14159,qun,14151," PinMa = PinMa & "ran,14149,rang,14145,rao,14140,re,14137,ren,14135,reng,14125,ri,14123,rong,14122,rou,14112,ru,14109,ruan,14099,rui,14097,run,14094,ruo,14092," PinMa = PinMa & "sa,14090,sai,14087,san,14083,sang,13917,sao,13914,se,13910,sen,13907,seng,13906,sha,13905,shai,13896,shan,13894,shang,13878,shao,13870,she,13859,shen,13847,sheng,13831,shi,13658,shou,13611,shu,13601,shua,13406,shuai,13404,shuan,13400,shuang,13398,shui,13395,shun,13391,shuo,13387,si,13383,song,13367,sou,13359,su,13356,suan,13343,sui,13340,sun,13329,suo,13326," PinMa = PinMa & "ta,13318,tai,13147,tan,13138,tang,13120,tao,13107,te,13096,teng,13095,ti,13091,tian,13076,tiao,13068,tie,13063,ting,13060,tong,12888,tou,12875,tu,12871,tuan,12860,tui,12858,tun,12852,tuo,12849," PinMa = PinMa & "wa,12838,wai,12831,wan,12829,wang,12812,wei,12802,wen,12607,weng,12597,wo,12594,wu,12585," PinMa = PinMa & "xi,12556,xia,12359,xian,12346,xiang,12320,xiao,12300,xie,12120,xin,12099,xing,12089,xiong,12074,xiu,12067,xu,12058,xuan,12039,xue,11867,xun,11861," PinMa = PinMa & "ya,11847,yan,11831,yang,11798,yao,11781,ye,11604,yi,11589,yin,11536,ying,11358,yo,11340,yong,11339,you,11324,yu,11303,yuan,11097,yue,11077,yun,11067," PinMa = PinMa & "za,11055,zai,11052,zan,11045,zang,11041,zao,11038,ze,11024,zei,11020,zen,11019,zeng,11018,zha,11014,zhai,10838,zhan,10832,zhang,10815,zhao,10800,zhe,10790,zhen,10780,zheng,10764,zhi,10587,zhong,10544,zhou,10533,zhu,10519,zhua,10331,zhuai,10329,zhuan,10328,zhuang,10322,zhui,10315,zhun,10309,zhuo,10307,zi,10296,zong,10281,zou,10274,zu,10270,zuan,10262,zui,10260,zun,10256,zuo,10254" MyPinMa = Split(PinMa, ",") For i = 1 To Len(Hz) Temp = Asc(Mid(Hz, i, 1)) If Temp < 0 Then Temp = Abs(Temp) For j = 791 To 1 Step -2 If Temp <= Val(MyPinMa(j)) Then PinYin = PinYin & MyPinMa(j - 1) & " " Exit For End If Next End If Next PinYin = Trim(PinYin) End Function
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

专注VB编程开发20年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值