Pat*_*rez 48
我想略微重写keytarhero的回复:
Sub CopyWorkbook()
Dim sh as Worksheet, wb as workbook
Set wb = workbooks("Target workbook")
For Each sh in workbooks("source workbook").Worksheets
sh.Copy After:=wb.Sheets(wb.sheets.count)
Next sh
End Sub
Run Code Online (Sandbox Code Playgroud)
编辑:您还可以构建工作表名称数组并立即复制.
Workbooks("source workbook").Worksheets(Array("sheet1","sheet2")).Copy _
After:=wb.Sheets(wb.sheets.count)
Run Code Online (Sandbox Code Playgroud)
注意:从XLS复制工作表?到XLS将导致错误.相反的工作正常(XLS到XLSX)
Chr*_*ynn 30
在奥兹格里德的人回答了类似的问题.基本上,您只需将每个工作表从Workbook1复制到Workbook2.
Sub CopyWorkbook()
Dim currentSheet as Worksheet
Dim sheetIndex as Integer
sheetIndex = 1
For Each currentSheet in Worksheets
Windows("SOURCE WORKBOOK").Activate
currentSheet.Select
currentSheet.Copy Before:=Workbooks("TARGET WORKBOOK").Sheets(sheetIndex)
sheetIndex = sheetIndex + 1
Next currentSheet
End Sub
Run Code Online (Sandbox Code Playgroud)
免责声明:我没有尝试过此代码,而只是采用了链接的示例来解决您的问题.如果不出意外,它应该引导您达到预期的解决方案.
Bra*_*rad 12
你可以保存为xlsx.然后,您将松开宏并生成一个新工作簿,工作量少一点.
ThisWorkbook.saveas Filename:=NewFileNameWithPath, Format:=xlOpenXMLWorkbook
Run Code Online (Sandbox Code Playgroud)
小智 5
我能够将运行了vba应用程序的工作簿中的所有工作表复制到没有应用程序宏的新工作簿,其中:
ActiveWorkbook.Sheets.Copy
Run Code Online (Sandbox Code Playgroud)