工作中的一些心得

这两天做了这样一件工作:把一个系统中(且成为B系统)的excel文件(DB定义文件)的相关信息(DB项目)抽到一个excel文件中,然后进行出现次数的统计。

统计是excel的长项,抽出来数据之后,用countif公式一统计,项目的出现次数就统计出来了。

所以这个工作的关键是把DB定义文件的内容抽出来。

而关于抽出DB定义文件,A系统已经用vba做了一个工具。

最初想象把这个工具直接拿过来用或者改造一下可能很快就搞定了。


但是这么想,显得过于简单了。

拿着工具先试跑了几个B系统的文件,

出来的内容惨不忍睹。

基本上没有正确的。

打开VBA的代码和B系统的DB定义文件一看,两方根本不吻合。

于是修改了一通VBA的代码,当然主要改的是取项目的位置。


完了再跑,还不错,出来了不少内容,只有个别错误。这些错误比较明显,很快找到相应位置的代码,修改了。


B系统的DB定义文件非常多,分了很多目录。

第一个目录好像没问题了。

试跑第二个。

(其实可以直接一下子跑完的,但是全跑的话数量太大,所花时间比较长,而且因为出来的内容多,找问题也不太容易,还有即使找到问题,定位也需要花费更多的时间。所以分开试跑,是一个折中的好方案。当然因为每个目录文件数是不一样的,所以这个办法没有二分法的效率那么高。算是一种模糊的高效方案吧)

果然出问题了。

直接在代码上报了错。

原来是每个文件都取一个固定sheet名的内容,但是不是所有的DB定义文件都那么统一。想骂娘但是没用,最简单的办法,把出错文件的相应sheet名给改了。

然后单独把出错的文件跑了一下,OK,说明对症下了药,病好了!

继续跑那个目录,还有类似的问题。

改之,继续跑。

终于没问题了。


马不停蹄—下一个目录。

文件不多,一次通过。爽!

又跑了几个还行!

前方预警!下一个目录下面有好几百个文件!

咱也不惧它!先跑一下!

跑起来了,还挺顺畅!

哎,停了!

跟上边同样的问题,改sheet名!

改一个,又一个,然后然后又一个!

高效起见,先打开文件,看看sheet名。能改则改。

忽然发现像总东西招引的蚂蚁,太多了。

Wuyangwuyang一片。

估计后面的目录还有啊。

这改下去不是办法啊。

网上查有没有好办法。

好像没有根据关键字和通配符或者正则表达式去匹配相应的sheet名的。

只能自己想。

遍历sheet名,发现通用的名字就结束。

遍历完了没发现通用的名字,就用不是最通用的那个名字。

虽然花了点时间,但是因为有编程的底子,时间不算长。

试跑了两三次,因为改了附近的一些代码,导致除了问题。

尤其是加的循环里面用的循环变量跟后面取值设值的变量一样,影响了后面的一些结果。

不过这些都是不大的问题,很快摘出来了。

试跑。

这个目录终于正常跑出来了。

验证一下。

实际有239个文件,却只出了236个表。

那三个被狗吃了?

用excel公式找出实际文件名和出来的表直接的差别,明确了那几个文件的没出。

然后把这三个文件找出来,放到一个新建的目录中,试跑。

果然出不来。

Debug。

很容易发现了问题。

原来它的位置跟以前的位置不一样。

所以表名等没出来。(相关项目出来了一部分)

改之。

因为这几个文件特殊,为了减小修改量,把这个文件作为一个特例去写。

追加了一个专门针对这个分支的取值设值方法。

还好!第一个表OK。

第二个表跟第一个表有类似的问题,把追加的条件修改一下就好。

这中间除了其他的问题,一个是日文的内容copy到vba的编辑器中,变成了乱码。

而把sakula(一个日文的文本编辑工具)的内容copy到excel或者写字板或者vba编辑器中,都会变成乱码。

这个问题困扰了很长时间,问了一个技术大拿,说这个问题很早就有,没有好的办法解决。原因是在copy日语内容的时候,实在英文输入法的前提下copy的。

只要换成日文输入法就能正常copy了。

一试,果然。神奇!

但是接下来的问题有点麻烦。

第二个文件除了跟第一个文件有一样的问题之外,还有一个问题---它出了很多空项目。

原来以为这个文件有一个包含出力sheet名的sheet名,但是删了这个sheet照样出力。

后来想想估计是虽然后面没有项目了,但是实际上有些项目不为空,所以导致它照样出力。

问了大拿,让录制ctrl+pagedn的宏,然后看看它生成的代码,并利用其代码,修改要循环到的行数。

试了下,果然生成了代码。

因为vba经验不多,所以试了几下,然后网上查找了相关内容,终于写出了相应的代码。

但是屡次实验,都没成功。

甚至几次因为取到的行数是excel的最大值100多万,直接把excel跑的无应答了。

只能杀了进程,然后继续。

又改了些代码,又上网查,又改又试。

终于解决了。

一片欢喜,意思疲惫。


简单总结:



1,意想不到的事情总会发生。

不是说A系统有个工具,B系统拿过来最多一个小时一跑就ok了。

总会有意外。

意外从不会缺席。

B系统的文件结构和A的不一致,B系统本身的文件的结构不一致,文件sheet名不一致等等都需要花很多时间试出问题,解决问题。

而这种时间在项目中还是比较常见的。

所以做预算的时候,必须考虑意想不到的事情,必须考虑这些是按发生的时候的时间。

不然吃大亏。



2, 类似这次的工作,更大的成本在于因为标本(DB定义文件)的庞大以及事前未知的不一致导致需要大量试错。

当然试错的方法实可以讨论的。应该有一定的方法论。



3,标本的不一致导致的试错时间,检查时间及解决时间是非常巨大的,并非修改几行代码或者修改一个标本或者对所有文件进行一次工具的运行的时间所能比的。

这个时间甚至是几何增加的。



4, 解决问的时候有时间会引发新的问题。

所以要注意尽量减少新的问题的发生,尽量避免改一个问题的时候改出来一个新的问题。

另外新问题的解决也需要花不少的时间。



5,解决问题要明确问题的真实现象,并进行一步一步追踪,以期最后找到相应的解决方案。

比如在试最大目录的几个问题文件时,发生error时,对象DB定义文件是打开的,我再把目录下的文件拷到另一个目录的时候,这个开着文件除了自己会被拷过去,也会把自己的临时文件拷过去。

着就会引发相应的问题,比如读到这个文件,但是名字和正常的名字不太一样,导致程序的某个地方出错。

认真明确现象,一步步追踪,基本上离最终解决问题就不远了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,695评论 6 515
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,569评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 168,130评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,648评论 1 297
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,655评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,268评论 1 309
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,835评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,740评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,286评论 1 318
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,375评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,505评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,185评论 5 350
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,873评论 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,357评论 0 24
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,466评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,921评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,515评论 2 359

推荐阅读更多精彩内容