vba中的正则表达式

先来吐槽。

尼玛这是文计啊!!!给文科生上的有木有!文科生mm学个html都吐槽“好难吖吖”更不要提VBA了好不好!

槽毕。

作业要求(原文)

集字辅助程序:对一个自己选定的碑帖,让用户输入自己要集的对句,则可以显示出对句中的每一个字应该从第几幅图片中集,如果没有对应的整字,则根据偏旁汉字表,查找其所对应的偏旁部首,进而给出含这些偏旁部首的字在碑帖中的位置。提示:你可以人工地将碑帖中所有字的信息(比如所在图片和位置、所包含偏旁)存入代码并按需读取。

javascrpt的部分暂且不谈,单是处理“偏旁汉字表”(Excel)就让我头大了(尼玛这可是文计啊啊啊!!!) 原文件 from:http://chinese.exponode.com/8_3r.htm

Excel分为两个sheet,sheet1包含了要用到的内容,但是有些常见的偏旁包含汉字太多,于是在sheet2中有完整的汉字表。现在,需要把两个sheet汇总,得到完整的偏旁汉字表,以便js做匹配的时候查找。

sheet1中需要改变的单元格具有“XXXXXX(38popu\d\d)”的特征,其中“\d\d”就是sheet2中所对应的行数(后来才发现,应该是 \d\d + 2 = sheet2中的行数)。

代码如下

Sub app()Rem my first vba!!!Dim regex As ObjectSet regex = CreateObject("VBScript.RegExp")With re    .Pattern = "\d*\)"    Dim matchs As Object, match As Object    Dim y As Integer    Dim E As Range    For Each c In Sheets(1).Range("E1:E1366")    Rem MsgBox c.Value        Set matchs = .Execute(c.Value)        For Each match In matchs            y = Val(match) + 2            'MsgBox y            Set E = Sheets(2).Range("D" & y)            c.Value = E.Value        Next    NextEnd WithEnd Sub

本人很久以前只是在书本上读过VB,这回真的需要自己编写VBA,实属是生平第一次,代码冗余神马的不谈了(比如那个Range E就可以省掉貌似)。先把D列复制到E列,再执行vba,实测可以正常工作(233333居然成功了)。

几点疑问,跪求好心大虾指教!先谢过!

    没找到操作单元格的办法。有个“Cells”对象可以操作一个单元格,但是前缀不能加“Sheets”对象。我采用的办法是用“Range”,感觉有点“炮打蚊子”了。据说vba支持正向预测零宽断言???原表中个别单元格是以“/38popu/d/d\)?”结尾的,后边的“)”有的单元格没有,我最初的想法是"/(?<=38popu)\d\d",TNND就是过不去,度娘说强(dou)大(bi)的vbs只支持正向预测零宽断言,至于负向零宽断言、回顾零宽断言神马的统统不支持(谁起的“零宽断言”这个名字呢?我管它叫正(负)向预查(回顾),多直观!),于是我机智的采用“/\d\d\)”得到一个字符串(i.e. "18)"),然后转换成整数。"Regex.Execute"返回的是“match对象”,match对象是神马?我感觉就是字符串数组,还得用个“For Each match In matchs”来取出字符串(貌似“match对象”就是字符串),我断言有更简单的方法。With结构是VB特有的么?怎么用啊?貌似比逐句调用对象的属性或者方法效率要高;我以前从未遇到过。

最后继续吐槽

    VBA的界面跟VS一个模(cao)样(xing),或者说,还不如。高亮是有的,还带编辑时自动编译并挑错;但是您好歹来个自动缩进啊!自动补全也不是想有就有的,好像“As”,“.”能蹦出来,蛋疼死了。另外我眼瞎,调个黑底绿字都麻烦死,尼玛关键字还有背景颜色!!!烦躁。(我觉我我患上vi综合症了,现在只要是编辑文本我第一反应就是用vi,不论那玩意是不是有现成的IDE)一切折腾归咎于geek.设想我是个弱(ru)弱(ya)的文科生,需要合并表单,手工复制粘(念zhan还是念nian?)贴,不就38个单元格么?简单,老子apm300+,10分钟搞定!!!合并完了也是bug满天飞,几乎每行都能匹配到“\[^一-龟]”的外星字符([一-龟]表示gbk一级字库,常见的汉字都有了),不过这点影响不大。尼玛这是文计么?!这是号称讲html/css/javascript的文计么?!老师真得谢谢你!!!学javascript,还买一赠一逼我自学vba;嗯,趁年轻多学点总是没坏处的。

完。

PS:重点是javascript的正则表达式,还在后头呢!

我不去想是否能够成功,既然选择了远方,便只顾风雨兼程!

vba中的正则表达式

相关文章:

  • 【算法】直接插入排序C语言实现
  • 嵌入式 FAAC1.28 在海思HI3518C/HI3518A平台linux中的编译优化
  • Android 动画animation 深入分析
  • Mybatis极其(最)简(好)单(用)的一个分页插件
  • Ext JS Kitchen Sink [Learning by doing](2)ArrayGrid
  • API开发第三篇:PHP的设计模式之完美的单例模式
  • 使用NGUI时遇到物理引擎错误
  • 你感兴趣的文章:

    标签云:

    亚洲高清电影在线, 免费高清电影, 八戒影院夜间, 八戒电影最新大片, 出轨在线电影, 午夜电影院, 在线影院a1166, 在线电影院, 在线观看美剧下载, 日本爱情电影, 日韩高清电影在线, 电影天堂网, 直播盒子app, 聚合直播, 高清美剧, 高清美剧在线观看 EhViewer-E站, E站, E站绿色版, qqmulu.com, qq目录网, qq网站目录,