辅助工具之VBA(四)按照自定义模版读取文件内容。

有一些项目中,偏好用excel进行数据收集和品质管理等。

针对每个机能就会有一套管理文件。制造review票,测试式样书,测试式样的review票,测试结果的review票等等。

用不了多久就会有很多文件。项目中期,有可能随时对这些票据进行统计,调查。但是一个一个打开文件未免过于麻烦。怎么办。很多时候我们只是查看每个文件的固定位置的内容。针对这类问题,我觉得有必要设计一个VBA工具来辅助我们轻松愉快地完成。

现在我们来一起设计一下。

上面提到的每类文档都是有固定模版。比如表头信息,一共有十项,每一项的位置大小都是固定的。这样我们在做工具的时候,才能通过相对位置找到我们想要找的内容。

第一步,就是获取对象文件的路径名字。

用户需要给我们指定一个文件夹。对象文件就在这个文件夹中,有可能是在子文件夹中。我们需要把这个文件夹下面所有的文件都列举出来。然后按照文件名字的特定,后缀名等特定筛选一遍。过滤掉我们不想要的文件。然后把我们要找的文件的全路径名字放到一个数组中。

dim cfolder as folder

dim sfolder as folder

dim fs as New FileSystemObject

获取指定路径的下的文件

Set cfolder = fs.getFolder(path)

for each itemFile in cfolder.Files 遍历当前文件夹下面的所有文件

有子文件夹的时候怎么办

for each itemFolder in cfolder.SubFolders 遍历所有子文件夹,然后递归。

 

第二步,开始遍历这个数组,按照路径打开每个文件。

 

第三步,根据文件模版结构我们设计一个表格模版,上面指定好sheet名,单元格名,行偏移量,列偏移量,比如我想取Asheet的B单元格后面的内容。模版设计成 A,B,0,1。

打开的文件中直接定位我们的目标sheet页中。

workbook对象.sheets("A")

从第一个行开始逐行查找和B单元格的内容找B单元格的地址。然后按照偏移量找到目标单元格,获取我们想要的内容。

Set Btemp = worksheet对象.cells.Find(what:=目标字符串,LookIn:=从哪个单元格开始,lookat:=xlWhole)

返回值 = Btemp.offset(0,1).value

第四步,按照第三步的模版读取文件内容作为一个条数据输出都指定位置。

第二步和第四步很简单,大家自己发挥这里就不过多赘述了。

到此这个小工具就设计完成了,是不是很简单。

一个成功的项目,一定有很多优秀的小工具辅助。反过来未必成立。

软件工程的很多工作都可以工具化。很多时候我们是用代码写代码,用代码测试代码。

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值