你笑的时候全世界陪你一起笑,你哭的时候只有你一个人哭

使用Robot输入清单

上一篇 / 下一篇  2006-12-14 21:49:04 / 个人分类:Rational Robot 技术

制作一份模拟真实情况的预算文件通常需要输入大量的清单和子目,采用手工输入的话不仅浪费时间而且可重复性不强,本篇文章介绍如何使用Robot的DataPool和for循环对清单进行输入,并探索了两种方法的优缺点。

从事建筑行业的人都知道清单的输入格式,在这里我也简单介绍一下。 

十二位的清单格式:

两位专业号+两位章号+两位节号+三位小节号+三位流水号,如01 01 01 001 001(为了从视觉上看到不同位的意义,我把一个标准的清单用空格分隔开了,正常的清单号是没有空格分隔的)。不同专业、章、节、小节可以组合出不同的清单,最后一位流水号起到区分同一清单的作用,即为010101001001与010101001002是同一清单,只是用户流水号不同,因为一份预算书中不允许有完全相同的清单出现。

作为自动化输入大量清单我首先想到的就是使用Robot的DataPool。从EXCEL制作大量清单并保存为CSV文件,导入到DataPool中进行循环输入。但这里我遇到一个问题:保存为CSV格式后清单号的第一个0被抹掉了(直接在CSV文档中输入010101001001,保存后第一个0还是会被清除),这样导入到DataPool后清单号都变成十一位了,这不是标准清单!解决办法就是手工在DataPool中添加,但对于大量保存在DataPol中的清单这样的修改是不可行的。于是只能放弃。

另一种办法就是使用循环,将清单号如上面的格式拆分,分别对专业、章、节、小节、流水号进行循环,最后再组合成为一个标准的清单输入。但这里还有一个小问题,如我对三位小节号从1循环到10,最后怎样让其输出格式为001~010。其实很简单,使用format函数。简单代码如下:


Sub Main
    Dim Result As Integer
    Dim zhuan,zhang,jie,liu as integer
    Dim qing as string
   
    'Initially Recorded: 2006-11-15  21:35:34
    'scrīpt Name:     
        
    for jie = 1 to 5
        for liu = 1 to 5
      
         qing = "01" + "01" + "01" + Cstr(format(jie,"000")) + Cstr(format(liu,"000"))
         InputKeys qing
         InputKeys "{DOWN}"
   
        next liu
    next jie

End Sub

这是一个再简单不过的循环语句,但是效果却很不错。由此可见我们不见得非要采用“高新技术”解决所有问题,最适用最简单的方法就是最好的。


TAG:

 

评分:0

我来说两句

Open Toolbar