比如有100个(或者更多)工作簿
每个工作簿里有若干个工作表
比如有一个或两个或三个
甚至更多的工作表
但是每个工作表结构一样
不能有合并单元格
表格的样子见下图
这样的很多个工作簿
合并在一起
有vba的方法
也有Power Query的方法
见以前分享过的文章
超级牛牛牛,100个工作簿里的多表数据,迅雷不及掩耳之势导入到一张总表里,你从未见过
珍藏!珍惜!珍视!100个表汇集到一个总表里?2段经典代码送给你!
一个工作簿里的100个表超速汇集,最牛的来了
今天再分享一种用DOS命令来批量合并多簿多表数据
到一个总表里
不过首先要把这些工作簿文件另存为csv格式的文件
在Excel里通过F12另存为,可以实现
但是一个个把工作簿文件另存为csv格式
太慢了
csv格式文件里只能允许保存一张工作表
关于CSV,百度的解释:
逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。通常都是纯文本文件。建议使用WORDPAD或是记事本(NOTE)来开启,再则先另存新档后用EXCEL开启,也是方法之一。
那么怎么办呢?
如果是一个工作簿里有很多个工作表
每个工作表要另存为csv文件
那么可以用这段vba代码来处理
Sub 多表一一转成CSV()
myPath = ThisWorkbook.Path
For x = 1 To Worksheets.Count
Name = "\" & Sheets(x).Name & ".csv"
filepath = myPath & Name
Sheets(x).SaveAs Filename:=filepath, FileFormat:= _
xlCSV, CreateBackup:=False
Next
End Sub
在这个有多表的工作簿里,按ALT+F11,
插入,模块
把上面代码粘贴过来
然后关闭vba编辑窗口
再按ALT+F8,执行这个程序代码
就会立即在当前工作簿所在的文件夹里
生成很多的csv文件
如果是很多工作簿,里面有若干工作表
每个工作表要另存为csv格式的文件
那么就要用下面这段代码
使用方法同上
新建一个空白工作簿
另存为启用宏的工作簿类型
(有代码的工作簿都应该保存为这个类型)
这里有2个文件夹
一个文件夹是存储近500个工作簿的,叫“新建文件夹”
一个文件夹是将来存储csv格式的文件的,叫“存CSV的”
代码如下:
Sub 多簿存为CSV格式()
Dim FileDir As String
Dim wbook As Workbook
Dim wsheet As Worksheet
Dim ExcelPath As String
Dim CsvPath As String
ExcelPath = "E:\李则见的Excel网课\录制ing\新建文件夹\"
CsvPath = "E:\李则见的Excel网课\录制ing\新建文件夹\存CSV的\"
FileDir = Dir(ExcelPath)
Do While (FileDir <> "")
If Right(FileDir, 4) = ".xls" Or Right(FileDir, 5) = ".xlsx" Then
On Error Resume Next
Set wbook = Workbooks.Open(ExcelPath & FileDir)
For Each wsheet In wbook.Sheets
wsheet.SaveAs CsvPath & Split(wbook.Name, ".")(0) & "+" & wsheet.Name & ".csv", xlCSV
Next wsheet
wbook.Close False
Set wbook = Nothing
End If
FileDir = Dir
On Error GoTo 0
Loop
End Sub
然后就可以执行了
在这个有这段vba代码的空白工作簿里
开发工具,宏,选择这段代码,执行
大概需要8-9分钟
500个工作簿里的多表
就都存为csv格式了
在这个csv存储的文件夹里
右键新建一个文本文件
打开后,写上一句命令
copy *.csv 总.csv
注意两两之间有空格
这个*.csv就代表当前文件夹里所有csv文件
这个总.csv就是汇总后的csv文件,这个文件会自动产生
然后把后缀改为bat
回车确认
双击这个bat文件
立即执行
大概十几秒就执行完毕
汇总后的总表
然后对这个表筛选一下
对城市列筛选出“城市”
然后选中筛选后的这些行删除掉
取消筛选后,就得到只有一行标题的总表
虽然看起来过程复杂
其实主要是处理csv格式的文件
真正的复制代码就一句话
洞悉Excel底层逻辑的框架完整
PPT/Word案例深入浅出、超越99.99%的同类课程
案例丰富,全网最实战的课程
office三剑客,一课顶万课,不用选择,不用纠结
职场高效技能,一套课程全搞定
你就是下一个气势恢宏的牛人高手大神
你开不开始,都已经晚了很久,因为很多人已经学了40个月了
只要您坚持学6个月,我一定确保您成为这个领域里的高手,顶尖高手不能确保,但睥睨周围同事横扫方圆99.99%的职场白骨精,我还是能确保的!
那么这套王牌的课程就是,
Excel+PPT修炼营Office小白变高手
点击阅读原文,打开购买链接,一次购买课程,享受终生辅导,李则见老师大部分情况下都直接回答你关于课程本身的所有问题,我微信号excelpptpeixun
想学习更多,必须要投入
想学习更好,必须选择对的
想人前飘逸,必须人后受累
下面推荐一套对您有极大改变的office网课
《[520节]Excel+PPT+Word小白变大神》
点击“”直达,看看介绍、目录以及评价
课程确保您半年时间就能修炼成为高手
游刃有余在您的职场办公令人震惊地提升您的职场幸福感
课程一节只需1元钱,每个小时的视频只需4元钱
而一般网课且不说质量如何,单位价格是我课程的数倍甚至十几倍
所以,选择加入我的网课学习,
是office网课里几乎当仁不让地不二选择
您信呢就加入,不用犹豫,李则见老师信誉保证
您不信呢就随缘。人呢总会在过尽千帆皆不是之后,
才知道曾经的错过是多么的可惜那么的珍贵。