使用场景:进行数据测试的时候,会跑出来很多张表,要求是尽量放在一个excel里面,分不同的sheet页

数量不多的话还能手动复制粘贴弄一下,之前也用过vb脚本,但是导出数据为excel的时候一个excel文件会有三个sheet,运行脚本合并时这些空的sheet页也会汇总进去

解决方法:导出的时候导出为csv格式,编码选择936 gbk,这样的话csv的sheet页只有一个,名称也会csv文件名称一样,此时使用脚本就很奈斯了

 

使用步骤:

1,将需要汇总的表全部导出到同一个文件夹下,编码选择936 gbk

2,在文件夹下新建一个excel文件,右键点击sheet页,点击查看代码

 

 3,复制以下代码,粘贴,按f5执行

Sub Find()
Application.ScreenUpdating = False
Dim MyDir As String
MyDir = ThisWorkbook.Path & "\"
ChDrive Left(MyDir, 1) 'find all the excel files
ChDir MyDir
Match = Dir$("")
Do
If Not LCase(Match) = LCase(ThisWorkbook.Name) Then
Workbooks.Open Match, 0 'open
ActiveSheet.Copy Before:=ThisWorkbook.Sheets(1) 'copy sheet
Windows(Match).Activate
ActiveWindow.Close
End If
Match = Dir$
Loop Until Len(Match) = 0
Application.ScreenUpdating = True
End Sub

4,完成后也不用保存,检查一下汇总结果,X掉就可以了

 

顺带记录一下查看有几个sheet的代码

sub xxx()
msgbox sheets.count
end sub