批量汇总工作簿 A large collection of workbooks 工作中有时候需要批量汇总一些格式相同的工作表,或者批量提取工作表中的某一列某一行数据。一般的解决思路就是:利用Dir函数对工作薄进行循环,对于每一个工作簿再对工作簿中每一个worksheet进行循环,然后获取你需要的内容。 这节课我们讲一个最简单的汇总工作簿的实例。可以作为模板代码,应用到以后类似的例子中。学精这一个就可以举一反三,触类旁通。 ➜下面讲一个应用实例: 现有每日登记A、B、C、D....等等表格,格式相同。要求:每日登记表表中有按日期命名的sheet页,现需要将每个工作簿中的所有sheet页面数据复制汇总到汇总表中。如果手动粘贴的话,表格很多,需要一个表格一个的打开复制粘贴,很浪费时间。下面就告诉大家如何用vba解决此类问题。 分表样式 汇总表 ➜思路:循环打开每个工作簿,遍历每个worksheet,复制数据至汇总表。 ➜知识点:循环、Dir函数
图中带颜色代码为汇总工作簿模板代码,其余都可以根据这个来扩展。 ➜代码解释:代码使用Dir函数依次取工作簿名称,循环打开提取相应数据。代码中 Do While f <> "" And f<> ThisWorkbook.Name是为了给循环限定条件,当用Dir函数取得的工作簿名称不为空并且不等于汇总表名称的时候开始循环。 ➜注意:汇总前将需要汇总的表格和汇总表放入同一个文件夹中。若汇总文件不想放在代码工作簿路径,可使用filedialog对象(文件对话框对象)来获取需要汇总的文件全路径(路径+文件名)。以后会专门讲解。 下面是汇总的结果: 这是批量汇总工作簿的经典实例,希望大家好好研究消化,成为自己的东西。 |
|