Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 56670|回复: 92

[分享] 汉字转全拼音函数

  [复制链接]
发表于 2011-5-18 14:16 | 显示全部楼层 |阅读模式
本帖最后由 爱疯 于 2012-7-11 16:04 编辑

11楼更新,自带字库,支持音标、繁体汉字及更多偏僻字。

  1. Option Explicit

  2. Public Function Getpy(ByVal Chs As String, Optional bList As Boolean = True) As String
  3. Dim ardata(-20319 To -10247) As String
  4. ardata(-20319) = " a"
  5. ardata(-20317) = " ai"
  6. ardata(-20304) = " an"
  7. ardata(-20295) = " ang"
  8. ardata(-20292) = " ao"
  9. ardata(-20283) = " ba"
  10. ardata(-20265) = " bai"
  11. ardata(-20257) = " ban"
  12. ardata(-20242) = " bang"
  13. ardata(-20230) = " bao"
  14. ardata(-20051) = " bei"
  15. ardata(-20036) = " ben"
  16. ardata(-20032) = " beng"
  17. ardata(-20026) = " bi"
  18. ardata(-20002) = " bian"
  19. ardata(-19990) = " biao"
  20. ardata(-19986) = " bie"
  21. ardata(-19982) = " bin"
  22. ardata(-19976) = " bing"
  23. ardata(-19805) = " bo"
  24. ardata(-19784) = " bu"
  25. ardata(-19775) = " ca"
  26. ardata(-19774) = " cai"
  27. ardata(-19763) = " can"
  28. ardata(-19756) = " cang"
  29. ardata(-19751) = " cao"
  30. ardata(-19746) = " ce"
  31. ardata(-19741) = " ceng"
  32. ardata(-19739) = " cha"
  33. ardata(-19728) = " chai"
  34. ardata(-19725) = " chan"
  35. ardata(-19715) = " chang"
  36. ardata(-19540) = " chao"
  37. ardata(-19531) = " che"
  38. ardata(-19525) = " chen"
  39. ardata(-19515) = " cheng"
  40. ardata(-19500) = " chi"
  41. ardata(-19484) = " chong"
  42. ardata(-19479) = " chou"
  43. ardata(-19467) = " chu"
  44. ardata(-19289) = " chuai"
  45. ardata(-19288) = " chuan"
  46. ardata(-19281) = " chuang"
  47. ardata(-19275) = " chui"
  48. ardata(-19270) = " chun"
  49. ardata(-19263) = " chuo"
  50. ardata(-19261) = " ci"
  51. ardata(-19249) = " cong"
  52. ardata(-19243) = " cou"
  53. ardata(-19242) = " cu"
  54. ardata(-19238) = " cuan"
  55. ardata(-19235) = " cui"
  56. ardata(-19227) = " cun"
  57. ardata(-19224) = " cuo"
  58. ardata(-19218) = " da"
  59. ardata(-19212) = " dai"
  60. ardata(-19038) = " dan"
  61. ardata(-19023) = " dang"
  62. ardata(-19018) = " dao"
  63. ardata(-19006) = " de"
  64. ardata(-19003) = " deng"
  65. ardata(-18996) = " di"
  66. ardata(-18977) = " dian"
  67. ardata(-18961) = " diao"
  68. ardata(-18952) = " die"
  69. ardata(-18783) = " ding"
  70. ardata(-18774) = " diu"
  71. ardata(-18773) = " dong"
  72. ardata(-18763) = " dou"
  73. ardata(-18756) = " du"
  74. ardata(-18741) = " duan"
  75. ardata(-18735) = " dui"
  76. ardata(-18731) = " dun"
  77. ardata(-18722) = " duo"
  78. ardata(-18710) = " e"
  79. ardata(-18697) = " en"
  80. ardata(-18696) = " er"
  81. ardata(-18526) = " fa"
  82. ardata(-18518) = " fan"
  83. ardata(-18501) = " fang"
  84. ardata(-18490) = " fei"
  85. ardata(-18478) = " fen"
  86. ardata(-18463) = " feng"
  87. ardata(-18448) = " fo"
  88. ardata(-18447) = " fou"
  89. ardata(-18446) = " fu"
  90. ardata(-18239) = " ga"
  91. ardata(-18237) = " gai"
  92. ardata(-18231) = " gan"
  93. ardata(-18220) = " gang"
  94. ardata(-18211) = " gao"
  95. ardata(-18201) = " ge"
  96. ardata(-18184) = " gei"
  97. ardata(-18183) = " gen"
  98. ardata(-18181) = " geng"
  99. ardata(-18012) = " gong"
  100. ardata(-17997) = " gou"
  101. ardata(-17988) = " gu"
  102. ardata(-17970) = " gua"
  103. ardata(-17964) = " guai"
  104. ardata(-17961) = " guan"
  105. ardata(-17950) = " guang"
  106. ardata(-17947) = " gui"
  107. ardata(-17931) = " gun"
  108. ardata(-17928) = " guo"
  109. ardata(-17922) = " ha"
  110. ardata(-17759) = " hai"
  111. ardata(-17752) = " han"
  112. ardata(-17733) = " hang"
  113. ardata(-17730) = " hao"
  114. ardata(-17721) = " he"
  115. ardata(-17703) = " hei"
  116. ardata(-17701) = " hen"
  117. ardata(-17697) = " heng"
  118. ardata(-17692) = " hong"
  119. ardata(-17683) = " hou"
  120. ardata(-17676) = " hu"
  121. ardata(-17496) = " hua"
  122. ardata(-17487) = " huai"
  123. ardata(-17482) = " huan"
  124. ardata(-17468) = " huang"
  125. ardata(-17454) = " hui"
  126. ardata(-17433) = " hun"
  127. ardata(-17427) = " huo"
  128. ardata(-17417) = " ji"
  129. ardata(-17202) = " jia"
  130. ardata(-17185) = " jian"
  131. ardata(-16983) = " jiang"
  132. ardata(-16970) = " jiao"
  133. ardata(-16942) = " jie"
  134. ardata(-16915) = " jin"
  135. ardata(-16733) = " jing"
  136. ardata(-16708) = " jiong"
  137. ardata(-16706) = " jiu"
  138. ardata(-16689) = " ju"
  139. ardata(-16664) = " juan"
  140. ardata(-16657) = " jue"
  141. ardata(-16647) = " jun"
  142. ardata(-16474) = " ka"
  143. ardata(-16470) = " kai"
  144. ardata(-16465) = " kan"
  145. ardata(-16459) = " kang"
  146. ardata(-16452) = " kao"
  147. ardata(-16448) = " ke"
  148. ardata(-16433) = " ken"
  149. ardata(-16429) = " keng"
  150. ardata(-16427) = " kong"
  151. ardata(-16423) = " kou"
  152. ardata(-16419) = " ku"
  153. ardata(-16412) = " kua"
  154. ardata(-16407) = " kuai"
  155. ardata(-16403) = " kuan"
  156. ardata(-16401) = " kuang"
  157. ardata(-16393) = " kui"
  158. ardata(-16220) = " kun"
  159. ardata(-16216) = " kuo"
  160. ardata(-16212) = " la"
  161. ardata(-16205) = " lai"
  162. ardata(-16202) = " lan"
  163. ardata(-16187) = " lang"
  164. ardata(-16180) = " lao"
  165. ardata(-16171) = " le"
  166. ardata(-16169) = " lei"
  167. ardata(-16158) = " leng"
  168. ardata(-16155) = " li"
  169. ardata(-15959) = " lia"
  170. ardata(-15958) = " lian"
  171. ardata(-15944) = " liang"
  172. ardata(-15933) = " liao"
  173. ardata(-15920) = " lie"
  174. ardata(-15915) = " lin"
  175. ardata(-15903) = " ling"
  176. ardata(-15889) = " liu"
  177. ardata(-15878) = " long"
  178. ardata(-15707) = " lou"
  179. ardata(-15701) = " lu"
  180. ardata(-15681) = " lv"
  181. ardata(-15667) = " luan"
  182. ardata(-15661) = " lue"
  183. ardata(-15659) = " lun"
  184. ardata(-15652) = " luo"
  185. ardata(-15640) = " ma"
  186. ardata(-15631) = " mai"
  187. ardata(-15625) = " man"
  188. ardata(-15454) = " mang"
  189. ardata(-15448) = " mao"
  190. ardata(-15436) = " me"
  191. ardata(-15435) = " mei"
  192. ardata(-15419) = " men"
  193. ardata(-15416) = " meng"
  194. ardata(-15408) = " mi"
  195. ardata(-15394) = " mian"
  196. ardata(-15385) = " miao"
  197. ardata(-15377) = " mie"
  198. ardata(-15375) = " min"
  199. ardata(-15369) = " ming"
  200. ardata(-15363) = " miu"
  201. ardata(-15362) = " mo"
  202. ardata(-15183) = " mou"
  203. ardata(-15180) = " mu"
  204. ardata(-15165) = " na"
  205. ardata(-15158) = " nai"
  206. ardata(-15153) = " nan"
  207. ardata(-15150) = " nang"
  208. ardata(-15149) = " nao"
  209. ardata(-15144) = " ne"
  210. ardata(-15143) = " nei"
  211. ardata(-15141) = " nen"
  212. ardata(-15140) = " neng"
  213. ardata(-15139) = " ni"
  214. ardata(-15128) = " nian"
  215. ardata(-15121) = " niang"
  216. ardata(-15119) = " niao"
  217. ardata(-15117) = " nie"
  218. ardata(-15110) = " nin"
  219. ardata(-15109) = " ning"
  220. ardata(-14941) = " niu"
  221. ardata(-14937) = " nong"
  222. ardata(-14933) = " nu"
  223. ardata(-14930) = " nv"
  224. ardata(-14929) = " nuan"
  225. ardata(-14928) = " nue"
  226. ardata(-14926) = " nuo"
  227. ardata(-14922) = " o"
  228. ardata(-14921) = " ou"
  229. ardata(-14914) = " pa"
  230. ardata(-14908) = " pai"
  231. ardata(-14902) = " pan"
  232. ardata(-14894) = " pang"
  233. ardata(-14889) = " pao"
  234. ardata(-14882) = " pei"
  235. ardata(-14873) = " pen"
  236. ardata(-14871) = " peng"
  237. ardata(-14857) = " pi"
  238. ardata(-14678) = " pian"
  239. ardata(-14674) = " piao"
  240. ardata(-14670) = " pie"
  241. ardata(-14668) = " pin"
  242. ardata(-14663) = " ping"
  243. ardata(-14654) = " po"
  244. ardata(-14645) = " pu"
  245. ardata(-14630) = " qi"
  246. ardata(-14594) = " qia"
  247. ardata(-14429) = " qian"
  248. ardata(-14407) = " qiang"
  249. ardata(-14399) = " qiao"
  250. ardata(-14384) = " qie"
  251. ardata(-14379) = " qin"
  252. ardata(-14368) = " qing"
  253. ardata(-14355) = " qiong"
  254. ardata(-14353) = " qiu"
  255. ardata(-14345) = " qu"
  256. ardata(-14170) = " quan"
  257. ardata(-14159) = " que"
  258. ardata(-14151) = " qun"
  259. ardata(-14149) = " ran"
  260. ardata(-14145) = " rang"
  261. ardata(-14140) = " rao"
  262. ardata(-14137) = " re"
  263. ardata(-14135) = " ren"
  264. ardata(-14125) = " reng"
  265. ardata(-14123) = " ri"
  266. ardata(-14122) = " rong"
  267. ardata(-14112) = " rou"
  268. ardata(-14109) = " ru"
  269. ardata(-14099) = " ruan"
  270. ardata(-14097) = " rui"
  271. ardata(-14094) = " run"
  272. ardata(-14092) = " ruo"
  273. ardata(-14090) = " sa"
  274. ardata(-14087) = " sai"
  275. ardata(-14083) = " san"
  276. ardata(-13917) = " sang"
  277. ardata(-13914) = " sao"
  278. ardata(-13910) = " se"
  279. ardata(-13907) = " sen"
  280. ardata(-13906) = " seng"
  281. ardata(-13905) = " sha"
  282. ardata(-13896) = " shai"
  283. ardata(-13894) = " shan"
  284. ardata(-13878) = " shang"
  285. ardata(-13870) = " shao"
  286. ardata(-13859) = " she"
  287. ardata(-13847) = " shen"
  288. ardata(-13831) = " sheng"
  289. ardata(-13658) = " shi"
  290. ardata(-13611) = " shou"
  291. ardata(-13601) = " shu"
  292. ardata(-13406) = " shua"
  293. ardata(-13404) = " shuai"
  294. ardata(-13400) = " shuan"
  295. ardata(-13398) = " shuang"
  296. ardata(-13395) = " shui"
  297. ardata(-13391) = " shun"
  298. ardata(-13387) = " shuo"
  299. ardata(-13383) = " si"
  300. ardata(-13367) = " song"
  301. ardata(-13359) = " sou"
  302. ardata(-13356) = " su"
  303. ardata(-13343) = " suan"
  304. ardata(-13340) = " sui"
  305. ardata(-13329) = " sun"
  306. ardata(-13326) = " suo"
  307. ardata(-13318) = " ta"
  308. ardata(-13147) = " tai"
  309. ardata(-13138) = " tan"
  310. ardata(-13120) = " tang"
  311. ardata(-13107) = " tao"
  312. ardata(-13096) = " te"
  313. ardata(-13095) = " teng"
  314. ardata(-13091) = " ti"
  315. ardata(-13076) = " tian"
  316. ardata(-13068) = " tiao"
  317. ardata(-13063) = " tie"
  318. ardata(-13060) = " ting"
  319. ardata(-12888) = " tong"
  320. ardata(-12875) = " tou"
  321. ardata(-12871) = " tu"
  322. ardata(-12860) = " tuan"
  323. ardata(-12858) = " tui"
  324. ardata(-12852) = " tun"
  325. ardata(-12849) = " tuo"
  326. ardata(-12838) = " wa"
  327. ardata(-12831) = " wai"
  328. ardata(-12829) = " wan"
  329. ardata(-12812) = " wang"
  330. ardata(-12802) = " wei"
  331. ardata(-12607) = " wen"
  332. ardata(-12597) = " weng"
  333. ardata(-12594) = " wo"
  334. ardata(-12585) = " wu"
  335. ardata(-12556) = " xi"
  336. ardata(-12359) = " xia"
  337. ardata(-12346) = " xian"
  338. ardata(-12320) = " xiang"
  339. ardata(-12300) = " xiao"
  340. ardata(-12120) = " xie"
  341. ardata(-12099) = " xin"
  342. ardata(-12089) = " xing"
  343. ardata(-12074) = " xiong"
  344. ardata(-12067) = " xiu"
  345. ardata(-12058) = " xu"
  346. ardata(-12039) = " xuan"
  347. ardata(-11867) = " xue"
  348. ardata(-11861) = " xun"
  349. ardata(-11847) = " ya"
  350. ardata(-11831) = " yan"
  351. ardata(-11798) = " yang"
  352. ardata(-11781) = " yao"
  353. ardata(-11604) = " ye"
  354. ardata(-11589) = " yi"
  355. ardata(-11536) = " yin"
  356. ardata(-11358) = " ying"
  357. ardata(-11340) = " yo"
  358. ardata(-11339) = " yong"
  359. ardata(-11324) = " you"
  360. ardata(-11303) = " yu"
  361. ardata(-11097) = " yuan"
  362. ardata(-11077) = " yue"
  363. ardata(-11067) = " yun"
  364. ardata(-11055) = " za"
  365. ardata(-11052) = " zai"
  366. ardata(-11045) = " zan"
  367. ardata(-11041) = " zang"
  368. ardata(-11038) = " zao"
  369. ardata(-11024) = " ze"
  370. ardata(-11020) = " zei"
  371. ardata(-11019) = " zen"
  372. ardata(-11018) = " zeng"
  373. ardata(-11014) = " zha"
  374. ardata(-10838) = " zhai"
  375. ardata(-10832) = " zhan"
  376. ardata(-10815) = " zhang"
  377. ardata(-10800) = " zhao"
  378. ardata(-10790) = " zhe"
  379. ardata(-10780) = " zhen"
  380. ardata(-10764) = " zheng"
  381. ardata(-10587) = " zhi"
  382. ardata(-10544) = " zhong"
  383. ardata(-10533) = " zhou"
  384. ardata(-10519) = " zhu"
  385. ardata(-10331) = " zhua"
  386. ardata(-10329) = " zhuai"
  387. ardata(-10328) = " zhuan"
  388. ardata(-10322) = " zhuang"
  389. ardata(-10315) = " zhui"
  390. ardata(-10309) = " zhun"
  391. ardata(-10307) = " zhuo"
  392. ardata(-10296) = " zi"
  393. ardata(-10281) = " zong"
  394. ardata(-10274) = " zou"
  395. ardata(-10270) = " zu"
  396. ardata(-10262) = " zuan"
  397. ardata(-10260) = " zui"
  398. ardata(-10256) = " zun"
  399. ardata(-10254) = " zuo"

  400. Dim stmp As String
  401. Dim i As Integer
  402. Dim ii As Integer

  403. For i = 1 To IIf(bList, Len(Chs), 1)
  404. stmp = Mid(Chs, i, 1)
  405. If Asc(stmp) > -10247 Or Asc(stmp) < -20319 Then
  406. Getpy = Getpy & stmp
  407. Else
  408. For ii = Asc(stmp) To -20319 Step -1
  409. If Len(ardata(ii)) Then
  410. Getpy = Getpy & ardata(ii)
  411. Exit For
  412. End If
  413. Next
  414. End If
  415. Next
  416. Getpy = Trim(StrConv(Getpy, vbProperCase))
  417. End Function

  418. Sub test()
  419. Debug.Print Getpy("飞翔的天空")
  420. Debug.Print Getpy("飞翔的天空", False)
  421. End Sub




  422. 返回:
  423. Fei Xiang De Tian Kong
  424. Fei
复制代码

评分

参与人数 15 +211 收起 理由
YANG6815475 + 3 赞一个!
jjafxzb + 1 很给力!
学良 + 3 很给力!
独自飞舞 + 3
Dj_soo + 12 精品文章

查看全部评分

发表于 2011-5-18 14:26 | 显示全部楼层
回复

使用道具 举报

发表于 2011-5-18 14:28 | 显示全部楼层
回复

使用道具 举报

发表于 2011-5-18 14:30 | 显示全部楼层
回复 HYY514 的帖子

楼主,你这个怎么用啊?
回复

使用道具 举报

发表于 2011-5-18 14:51 | 显示全部楼层
{:221:}应该有个公式的吧
回复

使用道具 举报

发表于 2011-5-18 15:08 | 显示全部楼层
回复 HYY514 的帖子

飞翔版主,能不能给讲讲这个代码的实现原理啊。
回复

使用道具 举报

发表于 2011-5-18 15:26 | 显示全部楼层
tony3 发表于 2011-5-18 14:30
回复 HYY514 的帖子

楼主,你这个怎么用啊?

这个是自定义函数,下面已将程序粘贴到工作簿里了。
例要转换成拼音的汉字在A2单元格,则可在你想显示结果的单元格里输入:=Getpy(A2)
( HYY514 分享)汉字转全拼音函数.rar (13.15 KB, 下载次数: 485)

评分

参与人数 1 +3 收起 理由
YANG6815475 + 3 也要支持一下哈!

查看全部评分

回复

使用道具 举报

发表于 2011-5-18 16:29 | 显示全部楼层
   不会用
回复

使用道具 举报

发表于 2011-5-18 17:52 | 显示全部楼层
程序不认识“劯” 呢
回复

使用道具 举报

 楼主| 发表于 2011-5-18 22:19 | 显示全部楼层
leolee82 发表于 2011-5-18 17:52
程序不认识“劯” 呢

上面程序只支持常用汉字吧,这个字我用自带的五笔竟然打不出来。
如果要支持更多偏僻字,只有建立个足够大的字典了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-18 12:36 , Processed in 0.258411 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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