|
原帖由 alzeng 于 2009-8-5 10:17 发表
我在3日下午,就是用这个方法的,这需要添加一个字码表,应用起来不够方便。而且,我想这个速度肯定不会已过这个代码:因为它取一个字母最多运算26次,而穷举2312个汉字理论上远不止这个次数。
当然,如果要取全拼 ...
老朽特意做一个附件,用于字典法与穷举法比较
比较的基础:65535*5个汉字
Option Compare Text
'撰写:alzeng
'网址:http://Club.ExcelHome.net
'日期:2009-8-5 下午 12:24:52
Function PY(ByVal Rng As Range )
Dim K%, str$
str = Replace(Replace(Rng, " ", ""), " ", "")
For I = 1 To Len(str)
K = 1
Do Until Mid("芭嚓搭蛾发噶哈击击咔垃妈拿哦啪期然撒塌挖挖挖昔压匝咗", K, 1) > Mid(str, I, 1)
K = K + 1
Loop
PY = PY & Chr(64 + K)
Next
End Function
'撰写:老朽
'网址:http://Club.ExcelHome.net
'日期:2009-8-5 下午 12:10:36
Public Function Zpy(Rng)
Dim A&
On Error Resume Next
A = Dic.Count
If A = 0 Or Err.Number <> 0 Then Call init: Err.Clear: On Error GoTo 0
For I = 1 To Len(Rng)
Zpy = Zpy & Dic(Mid(Rng, I, 1))
Next
End Function
'撰写:老朽
'网址:http://Club.ExcelHome.net
'日期:2009-8-5 下午 12:10:37
Sub init()
Dim Txt
Txt = Txt & "吖A阿A啊A锕A嗄G哎A哀A唉A埃A挨A欸A锿A捱A皑A癌A嗳A矮A蔼A霭A艾A爱A砹A隘A嗌A嫒A碍A叆A暧A瑷A僾A薆A餲A安A桉A氨A庵A谙A媕A腤A鹌A鞍A闇A鮟A盫A啽A垵A俺A唵A埯A铵A揞A晻A犴A岸A按A案A胺A暗A黯A肮A昂A枊A盎A醠A凹A坳A垇A爊A敖A嗷A嶅A廒A獒A遨A熬A璈A翱A聱A螯A謷A鳌A鏖A芺A拗A袄A媪A岙A傲A奡A奥A骜A墺A澳A懊A鏊A八B巴B叭B扒B朳B吧B夿B岜B芭B疤B捌B笆B粑B豝B鲃B拔B茇B胈B菝B跋B魃B鼥B把B钯B"
'''
''由于受长度限制,初始化代码只取了片段
'''
Txt = Txt & "濯Z镯Z灂J仔Z孜Z兹C咨Z姿Z茲Z赀Z资Z淄Z缁Z谘Z孳Z嵫Z滋Z粢Z辎Z觜Z趑Z锱Z龇Z髭Z鲻Z籽Z子Z姊Z秭Z耔Z笫Z梓Z紫Z滓Z訾Z字Z自Z恣Z渍Z眦Z宗Z综Z棕Z腙Z踪Z鬃Z总Z偬Z纵Z粽Z邹Z驺Z诹Z郰Z陬Z鄹Z鲰Z走Z奏Z揍Z租Z菹Z足Z卒Z族Z傶Z镞Z诅Z阻Z组Z俎Z珇Z祖Z躜Z缵Z纂Z钻Z攥Z嘴Z最Z罪Z蕞Z醉Z尊Z遵Z樽Z鐏Z鳟Z僔Z撙Z昨Z左Z佐Z作Z坐Z阼Z怍Z柞Z祚Z胙Z唑Z座Z做Z"
Set Dic = CreateObject("Scripting.Dictionary")
For I = 1 To Len(Txt) - 1 Step 2
Dic(Mid(Txt, I, 1)) = Mid(Txt, I + 1, 1)
Next
End Sub
|
|