出错了!ActiveSheet.UsedRange.Copy thisdocument.Sheets(1).Range("A60000").End(xlUp).Offset(1, 0)这一条
我用了下,一下子把我要的表都打开了,电脑直接死机,能改良下吗
追答追加语句wk.close savechanges:=false,把打开的文件关闭
Sub CombineWorkbooks()
Dim FilesToOpen, ft
Dim x As Integer
Application.ScreenUpdating = False
On Error GoTo errhandler
FilesToOpen = Application.GetOpenFilename _
(FileFilter:="Micrsofe Excel文件(*.xls;*.xlsx), *.xls;*.xlsx", _
MultiSelect:=True, Title:="要合并的文件")
If TypeName(FilesToOpen) = "boolean" Then
MsgBox ("没有选定文件")
End If
x = 1
Do While x <= UBound(FilesToOpen)
Set wk = Workbooks.Open(Filename:=FilesToOpen(x))
wk.Sheets(1).Move after:=ThisWorkbook.Sheets _
(ThisWorkbook.Sheets.Count)
wk.close savechanges:=false
x = x + 1
Loop
Application.ScreenUpdating = true
MsgBox ("合并成功完成!")
errhandler:
End Sub
提示是合并完成了,我的汇总表里啥也没有
追答不好意思,想确认下,你要求的数据汇总,是将你选定的文件中的工作表移动到汇总表,还是需要将你选定的工作表内容复制到汇总表的工作表中??
追问复制过来就可以了
追答Sub CombineWorkbooks()语句加了判断 wksh = wk.Sheets.Count,当你的表格数大于1的时候就自动关闭打开的文件。
你的文件默认工作表估计是1个,所以操作时你的工作表被移走,实际上已经关闭,所以语句执行再去关闭就退出程序了。现在在试试!
语句加了判断
追问还是什么都没有,就是图片中8.16.xlsx一直到10.13xlsx
,复制到一起,成为8.16-10.13.xlsx
你把我上传的文件下载后解压,执行base文件,点合并,选择文件夹中1-6的文件,执行看看
我是要把这些表里的数据汇总到一个sheet,不是变成一个表里好多sheet
晕,上面问了你没说,确认下马上帮你改。
你的工作表数据是否包含表头,复制是否连表头一起复制!
不复制表头,是有表头的
追答不好意思,再确认下,汇总表原来就有表头? 每个表的表头都是第一行吧?
追问恩,他们的格式都是一样的,表头是有2行的
追答