Excel 使用文件名问题将文件合并到一个工作表中

Excel 使用文件名问题将文件合并到一个工作表中,excel,vba,Excel,Vba,在将所有文件合并到一张工作表中时,我遇到了一个小问题。出于某种原因,只有文件名在顶部的第一张纸被正确复制,在每一个复制过的部分上,它缺少我插入文件名的第一行 我想知道这是否与我插入文件名的方式有关,但是 如蒙协助,将不胜感激 'PLACES ALL FILES IN FOLDER INTO ONE COMBINED FILE Filename = Dir(Path & "*.xls") Do While Filename <> "" Workbooks.Open Filena

在将所有文件合并到一张工作表中时,我遇到了一个小问题。出于某种原因,只有文件名在顶部的第一张纸被正确复制,在每一个复制过的部分上,它缺少我插入文件名的第一行

我想知道这是否与我插入文件名的方式有关,但是

如蒙协助,将不胜感激

'PLACES ALL FILES IN FOLDER INTO ONE COMBINED FILE
Filename = Dir(Path & "*.xls")
Do While Filename <> ""
Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
For Each Sheet In ActiveWorkbook.Sheets

Rows(1).Insert Shift:=xlDown, _
CopyOrigin:=xlFormatFromLeftOrAbove 'or xlFormatFromRightOrBelow
[A1].Formula = "=MID(CELL(""filename""),SEARCH(""["",CELL(""filename""))+1, SEARCH(""]"",CELL(""filename""))-SEARCH(""["",CELL(""filename""))-1)"
[A1].Cells(1).Select
[A1].Cells.Copy
[A1].Cells.PasteSpecial xlPasteValues
[A1].Cells(1).Select
Sheet.Copy Before:=wbk.Sheets(1)
Next Sheet
Workbooks(Filename).Close savechanges:=False
Filename = Dir()
Loop


'COMBINES WORKSHEETS INTO ONE COMBINED WORKSHEET
On Error Resume Next
Sheets(1).Select
Worksheets.Add
Sheets(1).Name = "Combined Totals"
Sheets(2).Activate
Range("A1").EntireRow.Select
Selection.Copy Destination:=Sheets(1).Range("A1")
For J = 2 To Sheets.Count
Sheets(J).Activate
Range("A1").Select
Selection.CurrentRegion.Select
Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select
Selection.Copy Destination:=Sheets(1).Range("A65536").End(xlUp).Offset(2)

Next
”将文件夹中的所有文件放在一个组合文件中
Filename=Dir(路径&“*.xls”)
文件名“”时执行此操作
工作簿。打开文件名:=路径和文件名,只读:=真
对于ActiveWorkbook.Sheets中的每个工作表
第(1)行。插入移位:=xlDown_
CopyOrigin:=xlFormatFromLeftOrAbove'或xlFormatFromRightOrBelow
[A1]。公式=“=MID(单元格(““文件名”)、搜索(“[”,单元格(““文件名”))+1、搜索(“]”),单元格(““文件名”)-搜索(“[”,单元格(““文件名”)-1)
[A1]。单元格(1)。选择
[A1].Cells.Copy
[A1].Cells.paste特殊XLPaste值
[A1]。单元格(1)。选择
前页复制:=wbk.Sheets(1)
下一页
工作簿(文件名)。关闭保存更改:=False
Filename=Dir()
环
'将工作表合并到一个合并的工作表中
出错时继续下一步
第(1)页。选择
工作表。添加
表(1).Name=“合并总计”
第(2)页。激活
范围(“A1”).EntireRow.Select
选择。复制目的地:=图纸(1)。范围(“A1”)
对于J=2至张数。计数
第(J)页。激活
范围(“A1”)。选择
Selection.CurrentRegion.Select
Selection.Offset(1,0)。调整大小(Selection.Rows.Count-1)。选择
选择。复制目的地:=纸张(1)。范围(“A65536”)。结束(xlUp)。偏移量(2)
下一个

在您的
工作表中
循环中,您只会引用活动工作表,而不是所涉及的工作表。为什么要在此行选择上进行偏移。偏移(1,0)。调整大小(Selection.Rows.Count-1)。选择?在为工作表输入for J=2之前,工作表2对第1行有单独的副本。计数循环,因此对于该工作表,偏移并不重要。