Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将多个excel工作簿合并到一个主工作簿中_Excel_Vba - Fatal编程技术网

将多个excel工作簿合并到一个主工作簿中

将多个excel工作簿合并到一个主工作簿中,excel,vba,Excel,Vba,如标题中所述。我一直在想办法。 我尝试过使用VB脚本将excel工作簿合并到一个excel工作簿中的方法。但是,当我编写脚本时,没有迹象表明所有工作簿都已编译到主工作簿中 下面是我完成的VB脚本: Sub GetSheets() Path = "C:\Users\..." Filename = Dir(Path & ".xlsx") Do While Filename <> "" Workbooks.Open Filename:=Path & Filename, R

如标题中所述。我一直在想办法。 我尝试过使用VB脚本将excel工作簿合并到一个excel工作簿中的方法。但是,当我编写脚本时,没有迹象表明所有工作簿都已编译到主工作簿中

下面是我完成的VB脚本:

Sub GetSheets()
Path = "C:\Users\..."
Filename = Dir(Path & ".xlsx") 
Do While Filename <> ""
Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
For Each Sheet In ActiveWorkbook.Sheets
Sheet.Copy After:=This.Workbook.Sheets(1)
Next Sheet 
Workbooks(Filename).Close
Filename = Dir()
Loop
End Sub
Sub-GetSheets()
Path=“C:\Users\…”
Filename=Dir(路径和“.xlsx”)
文件名“”时执行此操作
工作簿。打开文件名:=路径和文件名,只读:=真
对于ActiveWorkbook.Sheets中的每个工作表
Sheet.Copy After:=This.Workbook.Sheets(1)
下一页
工作簿(文件名)。关闭
Filename=Dir()
环
端接头

打开工作簿时,它将成为活动工作簿

Sub GetSheets()

    Path = "C:\Users\..."
    Filename = Dir(Path & "*.xlsx")
    Dim Wb As Workbook
    Dim Wb0 As Workbook: Set Wb0 = ActiveWorkbook
    Dim Sh As Worksheet

    Do While Filename <> ""
        Set Wb = Workbooks.Open(Path & Filename)

        For Each Sh In Wb.Sheets
            Sh.Copy After:=Wb0.Sheets(Wb0.Sheets.Count)
        Next Sh

        Wb.Saved = True
        Wb.Close
        Filename = Dir()
    Loop

End Sub
Sub-GetSheets()
Path=“C:\Users\…”
Filename=Dir(路径&“*.xlsx”)
将Wb设置为工作簿
将Wb0设置为工作簿:设置Wb0=ActiveWorkbook
将Sh设置为工作表
文件名“”时执行此操作
设置Wb=Workbooks.Open(路径和文件名)
对于Wb.表中的每个Sh
Sh.Copy After:=Wb0.Sheets(Wb0.Sheets.Count)
下一个Sh
Wb.Saved=True
Wb.关闭
Filename=Dir()
环
端接头

Hi Joe,我也尝试过使用您的代码,但主工作簿中仍然没有编译工作表的迹象。请将
Filename=Dir(Path&“.xlsx”)
更改为
Filename=Dir(Path&“*.xlsx”)
并确保您的路径以“\”结尾。您可能会发现这很有帮助:尝试过。它为我提供了一个新的excel工作簿,而不是一起编译文件。那么,将所有文件合并到一个新工作簿中有什么错呢?这似乎正是您想要的。。。编辑代码,使它做你需要的-这就是我所做的。。。