注册 登录
编程论坛 Excel/VBA论坛

如何合并多个excel文件的多个相同模板Sheet的内容到一个新excel文件

lovevba 发布于 2020-05-22 17:09, 1514 次点击
比如我有十个excel文件,每个excel文件有A、B、C、D、E、F一共六个sheet,每个文件中六个sheet的模板都分别一致,比如 sheet A有三列,首行分别为姓名、單位、年齡,sheet B有2列,首行分别为姓名,成績;其他以此类推。那么如何把这十个excel合并为一个excel文件呢?这个合并的excel还是有ABCDEF六个sheet,每个sheet的内容是十个excel中同名sheet的内容的合并。
1 回复
#2
厨师王德榜2020-05-29 14:47
首先,汇总文件已经打开,这里假定为totalFile
1/用对话框指定路径 ,程序获得要处理的文件夹名称path1
2/FSO对象取得path1下的所有文件名
3/遍历所有文件
    for each file ....
        打开文件
        遍历每个Sheet
            for each sht in file.worksheets
                提取内容
                提取内容所占有的行数rowCount1
                切换到totalFile的对应Sheet
                首次切换,把表头之下的第一行作为"起始行",否则,用内存中更新过的"起始行".
                切换到"起始行"下,粘贴内容
                更新"起始行"数据,供下一轮次使用(起始行=起始行 + rowCount1)
            next sht
    next file
'详细代码没时间写,大概就是这个逻辑,
'当然这个代码简陋了一些,
'比如,假定文件夹path1下,还有子文件夹,而且不只一层
'那么这个代码就还要考虑递归向下查找,直到找到最末一层文件夹的问题.
'这里为了简捷,就没有考虑递归向子文件夹中查找的问题了.
'还有,既然是多个不相干的Sheet都需要合并,那么"起始行"这个变量,
'恐怕需要用一个数组来保存了.
不周到的地方,欢迎大家补充.
1