首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

vba 遍历200个excel资料,分析里面的数据, 出柱形图

2013-03-13 
vba 遍历200个excel文件,分析里面的数据, 出柱形图写个宏,主要是分析工作日报,有200个excel日报文件,每个

vba 遍历200个excel文件,分析里面的数据, 出柱形图
写个宏,主要是分析工作日报,有200个excel日报文件,每个文件至少12个sheet。现在要将文件里面某C,D两列的信息读出来,同类型数据累加,出成柱形图。
例:日报文件大概内容。A列的1,2表示每月的天数,每月天数不定。sheet名为 月份,一个excel文件有12个sheet,表示12个月。也就是一个excel文件代表一个员工一年的工作日报。
A     B     C      D
1           开会   2
            调研   3
            开发   5 
2           开会   1
            调研   1
            开发   6
.
.
.
假设有200个员工。
现在要求统计这一年内所有员工开会用了多长时间,调研用了多长时间,开发用了多少时间。。。例如 开会 500小时,开发 5000小时,调研 1000小时。。。然后将这些数据按不同的类别出成柱形图。 excel?宏?统计同类别总和??出 宏?excel?同类别总和 统计出图 求快速好方法 宏
[解决办法]
用 ADO 把 Excel 当作外部数据库来处理。甚至可以用 Sum(), Group By 来直接得到一张 Sheet 中的各项合计。

[解决办法]
遍历打开200个Excel文件,每次打开一个就把该文件的所有Sheet的C,D这2列都复制到一个Sheet下面。第一列加个头例如Type,Times,然后ADO把Excel作为数据库,用SQL语句"Select '员工名字' as Name,Type,Sum(Times) as SumTime from [$Sheetname] Group by Type" 然后把结果输出到一个Sheet里面,关闭这个文件,打开下一个文件循环处理。这样遍历完后就能得到这200行数据,再用这个Sheet页作为柱形图的数据源就可以了。
中间实现也可以遍历打开文件后先把数据全部复制到一个Sheet页里,多加一列Name来标记数据是谁的,然后还是用SQL去Sum(Time),Group by Type,Name就行。这样只要执行一次SQL就可以输出所有结果了。

热点排行