批处理 多个excel合并成一个excel(不是首尾相接copy *.csv des.csv)
一个文件夹下有多个excel(每个excel只有一个工作表),合并后生成一个excel(含有多个工作表,每一个工作表对应合并前的一个文件内容,同时可否修改工作表名?)求大...
一个文件夹下有多个excel(每个excel只有一个工作表),合并后生成一个excel(含有多个工作表,每一个工作表对应合并前的一个文件内容,同时可否修改工作表名?)
求大神!!! 展开
求大神!!! 展开
1个回答
展开全部
将这些文件copy到一个文件夹,建一新Excel,也存到该文件夹。仅打开该新Excel,按Alt+F11,点菜单的插入,模块,粘贴如下代码:
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
在此界面之间按F5运行此宏,所有表格复制到一个Excel里了。
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
在此界面之间按F5运行此宏,所有表格复制到一个Excel里了。
追问
这个能直接在.bat里面实现吗? 批处理.bat文件里还有其他的操作
追答
看清我的回答,照做就可以了。
这只是excel中的宏,和.bat文件语言不同的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询