将所有工作表从一个(已关闭)工作簿复制到另一个工作簿

Ale*_*gro 4 excel vba excel-vba

我正在尝试将所有表格从一本书复制到另一本书

Windows("test.xls").Sheets.Copy Before:=Workbooks(ThisWorkbook).Sheets("00")
Run Code Online (Sandbox Code Playgroud)

错误 - 类型不匹配!
"test.xls"与ActiveWorkBook位于同一文件夹中.
特别是 - 如果没有打开"test.xls",有没有办法做到这一点?

bre*_*tdj 9

您可以打开已关闭的工作簿(在后台打开比使用已关闭的书籍容易得多)然后将所有工作表从一行复制Test.xls 到另一本书的特定部分(即工作表之前00)

代码如下:

  • 打开一个封闭的工作簿 c:\temp\Test.xls")
  • 00在包含代码的工作簿中复制工作表之前的所有工作表
  • 关闭 Test.xls

该代码抑制了Test.xls和screenupdating中的任何警报,代码事件

Sub CopyAll()
Dim Wb1 As Workbook
Dim Wb2 As Workbook
With Application
.ScreenUpdating = False
.EnableEvents = False
.DisplayAlerts = False
End With
Set Wb1 = Workbooks.Open("c:\temp\Test.xls")
Set Wb2 = ThisWorkbook
Wb1.Sheets.Copy Before:=Wb2.Sheets("00")
Wb1.Close False
With Application
.ScreenUpdating = True
.EnableEvents = True
.DisplayAlerts = True
End With
End Sub
Run Code Online (Sandbox Code Playgroud)