学以致用——使用VBA输出所有汉字(Ouput Complete List ofChinese Characters)

问题:

汉字总共有多少个?能否用VBA输出一个完整的汉字列表?

回答:

常用字有7000个左右,共有汉字90000多个。Unicode中基本汉字的范围为:U4E00~U9FCC,共计2万多个。

另外,还有数十个扩充汉字字符集,只要查出相应的编码范围,可复用此程序进行输出。

经过一番努力(查资料+编写、调试代码),总算得到了一个比较满意的结果。输出效果如下表所示。

编号

Unicode
十进制数值

Unicode编码
(十六进制)

汉字

拼音

1

19968

U4E00

yi

2

19969

U4E01

ding

3

19970

U4E02

 

4

19971

U4E03

qi

5

19972

U4E04

 

6

19973

U4E05

 

7

19974

U4E06

 

8

19975

U4E07

wan

9

19976

U4E08

zhang

10

19977

U4E09

san

11

19978

U4E0A

shang

12

19979

U4E0B

xia

13

19980

U4E0C

 

14

19981

U4E0D

bu

15

19982

U4E0E

yu

16

19983

U4E0F

 

17

19984

U4E10

 

18

19985

U4E11

chou

19

19986

U4E12

 

20

19987

U4E13

zhuan

21

19988

U4E14

qie

22

19989

U4E15

 

23

19990

U4E16

shi


代码:
Sub Unicode2HZ()
'将指定范围内的Unicode编码转换为汉字,可用于输出所有汉字(共计两万以上)’
'作者:hpd, 2018年6月12日
Dim uc As Long      '要转换成汉字的Unicode编码
Dim hz As String    'Unicode对应的汉字
Dim lStart As Long  '要转换成汉子的Unicode编码的起始值
Dim lEnd As Long    '要转换成汉子的Unicode编码的终止值
Dim arrHZ(1 To 25000, 1 To 5) As Variant         '用于存放转换结果的数组变量(相比逐单元格赋值的方法,性能将得到极大(数十倍)的提高)
Dim rngHZ As Range  '转换结束后,将暂存在数组中转换结果写入此单元格区域

lStart = 19968      'Unicode U4E00对应的十进制数值,对应汉字一
lEnd = 40908        'Unicode U9FCC对应的十进制数值

For i = 1 To lEnd - lStart + 1      '循环转换指定范围内的所有Unicode编码
    hz = ChrW(lStart + i - 1)       'ChrW函数实现Unicode编码转换为汉字
    arrHZ(i, 1) = i                 '转换结果的行号
    arrHZ(i, 2) = lStart + i - 1    'Unicode编码对应的十进制数值
    arrHZ(i, 3) = "U"  Hex(lStart + i - 1)     'Unicode编码
    arrHZ(i, 4) = hz                            '第四列存放转换后的汉字
    arrHZ(i, 5) = pinyin(hz)                    '调用第三方函数实现汉字拼音的查询(部分汉字不能识别,该函数有待完善)
    Debug.Print hz                              '用于在立即窗口中监控程序运行
Next

Set rngHZ = ThisWorkbook.Sheets("ChineseChar").Range("A2:E"  i + 1)        '指定将转换结果的写入位置:A列到E列
rngHZ.Value = arrHZ                                                         '将转换结果写入指定区域

End Sub

其中,汉字查拼音的函数摘自网络,只能识别3000多个汉字,现转发一下,方便大家调试。

以下代码(汉字转拼音)摘自网络:

--------------------------------------------------------------------------------------------------------------------------------

Function pinyin(p As String) As String

i = Asc(p)

Select Case i

Case -20319 To -20318: pinyin = "a"

Case -20317 To -20305: pinyin = "ai"

Case -20304 To -20296: pinyin = "an"

Case -20295 To -20293: pinyin = "ang"

Case -20292 To -20284: pinyin = "ao"

Case -20283 To -20266: pinyin = "ba"

Case -20265 To -20258: pinyin = "bai"

Case -20257 To -20243: pinyin = "ban"

Case -20242 To -20231: pinyin = "bang"

Case -20230 To -20226, -20063 To -20052: pinyin = "bao"

Case -20051 To -20037: pinyin = "bei"

Case -20036 To -20033: pinyin = "ben"

Case -20032 To -20027: pinyin = "beng"

Case -20026 To -20003: pinyin = "bi"

Case -20002 To -19991: pinyin = "bian"

Case -19990 To -19987: pinyin = "biao"

Case -19986 To -19983: pinyin = "bie"

Case -19982 To -19977: pinyin = "bin"

Case -19976 To -19970, -19807, -19806: pinyin = "bing"

Case -19805 To -19787: pinyin = "bo"

Case -19786 To -19776: pinyin = "bu"

Case -19775: pinyin = "ca"

Case -19774 To -19764: pinyin = "cai"

Case -19763 To -19757: pinyin = "can"

Case -19756 To -19752: pinyin = "cang"

Case -19751 To -19747: pinyin = "cao"

Case -19746 To -19742: pinyin = "ce"

Case -19741 To -19740: pinyin = "ceng"

Case -19739 To -19729: pinyin = "cha"

Case -19728 To -19726: pinyin = "chai"

Case -19725 To -19716: pinyin = "chan"

Case -19715, -19714, -19551 To -19541: pinyin = "chang"

Case -19540 To -19532: pinyin = "chao"

Case -19531 To -19526: pinyin = "che"

Case -19525 To -19516: pinyin = "chen"

Case -19515 To -19501: pinyin = "cheng"

Case -19500 To -19485: pinyin = "chi"

Case -19484 To -19480: pinyin = "chong"

Case -19479 To -19468: pinyin = "chou"

Case -19467 To -19458, -19295 To -19290: pinyin = "chu"

Case -19289: pinyin = "chuai"

Case -19288 To -19282: pinyin = "chuan"

Case -19281 To -19276: pinyin = "chuang"

Case -19275 To -19271: pinyin = "chui"

Case -19270 To -19264: pinyin = "chun"

Case -19263, -19262: pinyin = "chuo"

Case -19261 To -19250: pinyin = "ci"

Case -19249 To -19244: pinyin = "cong"

Case -19243: pinyin = "cou"

Case -19242 To -19239: pinyin = "cu"

Case -19238 To -19236: pinyin = "cuan"

Case -19235 To -19228: pinyin = "cui"

Case -19227 To -19225: pinyin = "cun"

Case -19224 To -19219: pinyin = "cuo"

Case -19218 To -19213: pinyin = "da"

Case -19212 To -19202, -19039: pinyin = "dai"

Case -19038 To -19024: pinyin = "dan"

Case -19023 To -19019: pinyin = "dang"

Case -19018 To -19007: pinyin = "dao"

Case -19006 To -19004: pinyin = "de"

Case -19003 To -18997: pinyin = "deng"

Case -18996 To -18978: pinyin = "di"

Case -18977 To -18962: pinyin = "dian"

Case -18961 To -18953: pinyin = "diao"

Case -18952 To -18946: pinyin = "die"

Case -18783 To -18775: pinyin = "ding"

Case -18774: pinyin = "diu"

Case -18773 To -18764: pinyin = "dong"

Case -18763 To -18756: pinyin = "dou"

Case -18755 To -18742: pinyin = "du"

Case -18741 To -18736: pinyin = "duan"

Case -18735 To -18732: pinyin = "dui"

Case -18731 To -18723: pinyin = "dun"

Case -18722 To -18711: pinyin = "duo"

Case -18710 To -18698: pinyin = "e"

Case -18697: pinyin = "en"

Case -18696 To -18690, -18527: pinyin = "er"

Case -18526 To -18519: pinyin = "fa"

Case -18518 To -18502: pinyin = "fan"

Case -18501 To -18491: pinyin = "fang"

Case -18490 To -18479: pinyin = "fei"

Case -18478 To -18464: pinyin = "fen"

Case -18463 To -18449: pinyin = "feng"

Case -18448 To -18448: pinyin = "fo"

Case -18447: pinyin = "fou"

Case -18446 To -18434, -18271 To -18240: pinyin = "fu"

Case -18239 To -18238: pinyin = "ga"

Case -18237 To -18232: pinyin = "gai"

Case -18231 To -18221: pinyin = "gan"

Case -18220 To -18212: pinyin = "gang"

Case -18211 To -18202: pinyin = "gao"

Case -18201 To -18185: pinyin = "ge"

Case -18184: pinyin = "gei"

Case -18183 To -18182: pinyin = "gen"

Case -18181 To -18178, -18015 To -18013: pinyin = "geng"

Case -18012 To -17998: pinyin = "gong"

Case -17997 To -17989: pinyin = "gou"

Case -17988 To -17971: pinyin = "gu"

Case -17970 To -17965: pinyin = "gua"

Case -17964 To -17962: pinyin = "guai"

Case -17961 To -17951: pinyin = "guan"

Case -17950 To -17948: pinyin = "guang"

Case -17947 To -17932: pinyin = "gui"

Case -17931 To -17929: pinyin = "gun"

Case -17928 To -17923: pinyin = "guo"

Case -17922: pinyin = "ha"

Case -17759 To -17753: pinyin = "hai"

Case -17752 To -17734: pinyin = "han"

Case -17733 To -17731: pinyin = "hang"

Case -17730 To -17722: pinyin = "hao"

Case -17721 To -17704: pinyin = "he"

Case -17703 To -17702: pinyin = "hei"

Case -17701 To -17698: pinyin = "hen"

Case -17697 To -17693: pinyin = "heng"

Case -17692 To -17684: pinyin = "hong"

Case -17683 To -17677: pinyin = "hou"

Case -17676 To -17666, -17503 To -17497: pinyin = "hu"

Case -17496 To -17488: pinyin = "hua"

Case -17487 To -17483: pinyin = "huai"

Case -17482 To -17469: pinyin = "huan"

Case -17468 To -17455: pinyin = "huang"

Case -17454 To -17434: pinyin = "hui"

Case -17433 To -17428: pinyin = "hun"

Case -17427 To -17418: pinyin = "huo"

Case -17417 To -17410, -17247 To -17203: pinyin = "ji"

Case -17202 To -17186: pinyin = "jia"

Case -17185 To -17162, -17160 To -17154, -16991 To -16984: pinyin = "jian"

Case -16983 To -16971: pinyin = "jiang"

Case -16970 To -16943: pinyin = "jiao"

Case -16942 To -16916: pinyin = "jie"

Case -16915 To -16898, -16735, -16734: pinyin = "jin"

Case -16733 To -16709: pinyin = "jing"

Case -16708, -16707: pinyin = "jiong"

Case -16706 To -16690: pinyin = "jiu"

Case -16689 To -16665: pinyin = "ju"

Case -16664 To -16658: pinyin = "juan"

Case -16657 To -16648: pinyin = "jue"

Case -16647 To -16642, -16479 To -16475: pinyin = "jun"

Case -16474 To -16471: pinyin = "ka"

Case -16470 To -16466: pinyin = "kai"

Case -17161, -16465 To -16460: pinyin = "kan"

Case -16459 To -16453: pinyin = "kang"

Case -16452 To -16449: pinyin = "kao"

Case -16448 To -16434: pinyin = "ke"

Case -16433 To -16430: pinyin = "ken"

Case -16429, -16428: pinyin = "keng"

Case -16427 To -16424: pinyin = "kong"

Case -16423 To -16420: pinyin = "kou"

Case -16419 To -16413: pinyin = "ku"

Case -16412 To -16408: pinyin = "kua"

Case -16407 To -16404: pinyin = "kuai"

Case -16403, -16402: pinyin = "kuan"

Case -16401 To -16394: pinyin = "kuang"

Case -16393 To -16386, -16223 To -16221: pinyin = "kui"

Case -16220 To -16217: pinyin = "kun"

Case -16216 To -16213: pinyin = "kuo"

Case -16212 To -16206: pinyin = "la"

Case -16205 To -16203: pinyin = "lai"

Case -16202 To -16188: pinyin = "lan"

Case -16187 To -16181: pinyin = "lang"

Case -16180 To -16172: pinyin = "lao"

Case -16171, -16170: pinyin = "le"

Case -16169 To -16159: pinyin = "lei"

Case -16158 To -16156: pinyin = "leng"

Case -16155 To -16130, -15967 To -15960: pinyin = "li"

Case -15959: pinyin = "lia"

Case -15958 To -15945: pinyin = "lian"

Case -15944 To -15934: pinyin = "liang"

Case -15933 To -15921: pinyin = "liao"

Case -15920 To -15916: pinyin = "lie"

Case -15915 To -15904: pinyin = "lin"

Case -15903 To -15890: pinyin = "ling"

Case -15889 To -15879: pinyin = "liu"

Case -15878 To -15874, -15711 To -15708: pinyin = "long"

Case -15707 To -15702: pinyin = "lou"

Case -15701 To -15682: pinyin = "lu"

Case -15681 To -15668: pinyin = "lv"

Case -15667 To -15662: pinyin = "luan"

Case -15661, -15660: pinyin = "lue"

Case -15659 To -15653: pinyin = "lun"

Case -15652 To -15641: pinyin = "luo"

Case -15640 To -15632: pinyin = "ma"

Case -15631 To -15626: pinyin = "mai"

Case -15625 To -15618, -15455: pinyin = "man"

Case -15454 To -15449: pinyin = "mang"

Case -15448 To -15437: pinyin = "mao"

Case -15436: pinyin = "me"

Case -15435 To -15420: pinyin = "mei"

Case -15419 To -15417: pinyin = "men"

Case -15416 To -15409: pinyin = "meng"

Case -15408 To -15395: pinyin = "mi"

Case -15394 To -15386: pinyin = "mian"

Case -15385 To -15378: pinyin = "miao"

Case -15377 To -15376: pinyin = "mie"

Case -15375 To -15370: pinyin = "min"

Case -15369 To -15364: pinyin = "ming"

Case -15363: pinyin = "miu"

Case -15362, -15199 To -15184: pinyin = "mo"

Case -15183 To -15181: pinyin = "mou"

Case -15180 To -15166: pinyin = "mu"

Case -15165 To -15159: pinyin = "na"

Case -15158 To -15154: pinyin = "nai"

Case -15153 To -15151: pinyin = "nan"

Case -15150: pinyin = "nang"

Case -15149 To -15145: pinyin = "nao"

Case -15144: pinyin = "ne"

Case -15143, -15142: pinyin = "nei"

Case -15141: pinyin = "nen"

Case -15140: pinyin = "neng"

Case -15139 To -15129: pinyin = "ni"

Case -15128 To -15122: pinyin = "nian"

Case -15121, -15120: pinyin = "niang"

Case -15119, -15118: pinyin = "niao"

Case -15117 To -15111: pinyin = "nie"

Case -15110: pinyin = "nin"

Case -15109 To -15106, -14943, -14942: pinyin = "ning"

Case -14941 To -14938: pinyin = "niu"

Case -14937 To -14934: pinyin = "nong"

Case -14933 To -14931: pinyin = "nu"

Case -14930: pinyin = "nv"

Case -14929: pinyin = "nuan"

Case -14928, -14927: pinyin = "nue"

Case -14926 To -14923: pinyin = "nuo"

Case -14922: pinyin = "o"

Case -14921 To -14915: pinyin = "ou"

Case -14914 To -14909: pinyin = "pa"

Case -14908 To -14903: pinyin = "pai"

Case -14902 To -14895: pinyin = "pan"

Case -14894 To -14890: pinyin = "pang"

Case -14889 To -14883: pinyin = "pao"

Case -14882 To -14874: pinyin = "pei"

Case -14873, -14872: pinyin = "pen"

Case -14871 To -14858: pinyin = "peng"

Case -14857 To -14850, -14687 To -14679: pinyin = "pi"

Case -14678 To -14675: pinyin = "pian"

Case -14674 To -14671: pinyin = "piao"

Case -14670, -14669: pinyin = "pie"

Case -14668 To -14664: pinyin = "pin"

Case -14663 To -14655: pinyin = "ping"

Case -14654 To -14647: pinyin = "po"

Case -14646: pinyin = "pou"

Case -14645 To -14631: pinyin = "pu"

Case -14630 To -14595, -6151: pinyin = "qi"

Case -14594, -14431, -14430: pinyin = "qia"

Case -14429 To -14408: pinyin = "qian"

Case -14407 To -14400: pinyin = "qiang"

Case -14399 To -14385: pinyin = "qiao"

Case -14384 To -14380: pinyin = "qie"

Case -14379 To -14369: pinyin = "qin"

Case -14368 To -14356: pinyin = "qing"

Case -14355, -14354: pinyin = "qiong"

Case -14353 To -14346: pinyin = "qiu"

Case -14345 To -14338, -14175 To -14171: pinyin = "qu"

Case -14170 To -14160: pinyin = "quan"

Case -14159 To -14152: pinyin = "que"

Case -14151, -14150: pinyin = "qun"

Case -14149 To -14146: pinyin = "ran"

Case -14145 To -14141: pinyin = "rang"

Case -14140 To -14138: pinyin = "rao"

Case -14137, -14136: pinyin = "re"

Case -14135 To -14126: pinyin = "ren"

Case -14125, -14124: pinyin = "reng"

Case -14123: pinyin = "ri"

Case -14122 To -14113: pinyin = "rong"

Case -14112 To -14110: pinyin = "rou"

Case -14109 To -14100: pinyin = "ru"

Case -14099, -14098: pinyin = "ruan"

Case -14097 To -14095: pinyin = "rui"

Case -14094, -14093: pinyin = "run"

Case -14092, -14091: pinyin = "ruo"

Case -14090 To -14088: pinyin = "sa"

Case -14087 To -14084: pinyin = "sai"

Case -14083, -14082, -13919, -13918: pinyin = "san"

Case -13917 To -13915: pinyin = "sang"

Case -13914 To -13911: pinyin = "sao"

Case -13910 To -13908: pinyin = "se"

Case -13907: pinyin = "sen"

Case -13906: pinyin = "seng"

Case -13905 To -13897: pinyin = "sha"

Case -13896, -13895: pinyin = "shai"

Case -13894 To -13879: pinyin = "shan"

Case -13878 To -13871: pinyin = "shang"

Case -13870 To -13860: pinyin = "shao"

Case -13859 To -13848: pinyin = "she"

Case -13847 To -13832: pinyin = "shen"

Case -13831 To -13826, -13663 To -13659: pinyin = "sheng"

Case -13658 To -13612: pinyin = "shi"

Case -13611 To -13602: pinyin = "shou"

Case -13601 To -13570, -13407: pinyin = "shu"

Case -13406, -13405: pinyin = "shua"

Case -13404 To -13401: pinyin = "shuai"

Case -13400, -13399: pinyin = "shuan"

Case -13398 To -13396: pinyin = "shuang"

Case -13395 To -13392: pinyin = "shui"

Case -13391 To -13388: pinyin = "shun"

Case -13387 To -13384: pinyin = "shuo"

Case -13383 To -13368: pinyin = "si"

Case -13367 To -13360: pinyin = "song"

Case -13359 To -13356: pinyin = "sou"

Case -13355 To -13344: pinyin = "su"

Case -13343 To -13341: pinyin = "suan"

Case -13340 To -13330: pinyin = "sui"

Case -13329 To -13327: pinyin = "sun"

Case -13326 To -13319: pinyin = "suo"

Case -13318 To -13314, -13151 To -13148: pinyin = "ta"

Case -13147 To -13139: pinyin = "tai"

Case -13138 To -13121: pinyin = "tan"

Case -13120 To -13108: pinyin = "tang"

Case -13107 To -13097: pinyin = "tao"

Case -13096: pinyin = "te"

Case -13095 To -13092: pinyin = "teng"

Case -13091 To -13077: pinyin = "ti"

Case -13076 To -13069: pinyin = "tian"

Case -13068 To -13064: pinyin = "tiao"

Case -13063 To -13061: pinyin = "tie"

Case -13060 To -13058, -12895 To -12889: pinyin = "ting"

Case -12888 To -12876: pinyin = "tong"

Case -12875 To -12872: pinyin = "tou"

Case -12871 To -12861: pinyin = "tu"

Case -12860, -12859: pinyin = "tuan"

Case -12858 To -12853: pinyin = "tui"

Case -12852 To -12850: pinyin = "tun"

Case -12849 To -12839: pinyin = "tuo"

Case -12838 To -12832: pinyin = "wa"

Case -12831, -12830: pinyin = "wai"

Case -12829 To -12813: pinyin = "wan"

Case -12812 To -12803: pinyin = "wang"

Case -12802, -12639 To -12608: pinyin = "wei"

Case -12607 To -12598: pinyin = "wen"

Case -12597 To -12595: pinyin = "weng"

Case -12594 To -12586: pinyin = "wo"

Case -12585 To -12557: pinyin = "wu"

Case -12556 To -12546, -12383 To -12360: pinyin = "xi"

Case -12359 To -12347: pinyin = "xia"

Case -12346 To -12321: pinyin = "xian"

Case -12320 To -12301: pinyin = "xiang"

Case -12300 To -12290, -12127 To -12121: pinyin = "xiao"

Case -12120 To -12100: pinyin = "xie"

Case -12099 To -12090: pinyin = "xin"

Case -12089 To -12075: pinyin = "xing"

Case -12074 To -12068: pinyin = "xiong"

Case -12067 To -12059: pinyin = "xiu"

Case -12058 To -12040: pinyin = "xu"

Case -12039 To -12034, -11871 To -11868: pinyin = "xuan"

Case -11867 To -11862: pinyin = "xue"

Case -11861 To -11848: pinyin = "xun"

Case -11847 To -11832: pinyin = "ya"

Case -11831 To -11799: pinyin = "yan"

Case -11798 To -11782: pinyin = "yang"

Case -11781 To -11778, -11615 To -11605: pinyin = "yao"

Case -11604 To -11590: pinyin = "ye"

Case -11589 To -11537, -8504: pinyin = "yi"

Case -11536 To -11522, -11359: pinyin = "yin"

Case -11358 To -11341: pinyin = "ying"

Case -11340: pinyin = "yo"

Case -11339 To -11325: pinyin = "yong"

Case -11324 To -11305: pinyin = "you"

Case -11304 To -11266, -11103 To -11098, -5980, -4390: pinyin = "yu"

Case -11097 To -11078: pinyin = "yuan"

Case -11077 To -11068: pinyin = "yue"

Case -11067 To -11056: pinyin = "yun"

Case -11055 To -11053: pinyin = "za"

Case -11052 To -11046: pinyin = "zai"

Case -11045 To -11042: pinyin = "zan"

Case -11041 To -11039: pinyin = "zang"

Case -11038 To -11025: pinyin = "zao"

Case -11024 To -11021: pinyin = "ze"

Case -11020: pinyin = "zei"

Case -11019: pinyin = "zen"

Case -11018 To -11015: pinyin = "zeng"

Case -11014 To -11010, -10847 To -10839: pinyin = "zha"

Case -10838 To -10833: pinyin = "zhai"

Case -10832 To -10816: pinyin = "zhan"

Case -10815 To -10801: pinyin = "zhang"

Case -10800 To -10791: pinyin = "zhao"

Case -10790 To -10781: pinyin = "zhe"

Case -10780 To -10765, -10591: pinyin = "zhen"

Case -10764 To -10754, -10590 To -10588: pinyin = "zheng"

Case -10587 To -10545: pinyin = "zhi"

Case -10544 To -10534: pinyin = "zhong"

Case -10533 To -10520: pinyin = "zhou"

Case -10519 To -10498, -10335 To -10332: pinyin = "zhu"

Case -10331, -10330: pinyin = "zhua"

Case -10329: pinyin = "zhuai"

Case -10328 To -10323: pinyin = "zhuan"

Case -10322 To -10316: pinyin = "zhuang"

Case -10315 To -10310: pinyin = "zhui"

Case -10309, -10308: pinyin = "zhun"

Case -10307 To -10297: pinyin = "zhuo"

Case -10296 To -10282: pinyin = "zi"

Case -10281 To -10275: pinyin = "zong"

Case -10274 To -10271: pinyin = "zou"

Case -10270 To -10263: pinyin = "zu"

Case -10262, -10261: pinyin = "zuan"

Case -10260 To -10257: pinyin = "zui"

Case -10256, -10255: pinyin = "zun"

Case -10254 To -10247: pinyin = "zuo"

Case Else: pinyin = ""

End Select

End Function

------------------------------------------------------------------------------------------------------------------------------

最新回复(0)
/jishuT9qkevGuU36O2W2VlEUrGWT7oCUMFB3vXFOKHfGBrZE_3D4833596
8 简首页