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

Excel 将所有工作表从一个(已关闭)工作簿复制到另一个工作簿;,excel,vba,Excel,Vba,我正试图把所有的纸张从一本书复制到另一本书 Windows("test.xls").Sheets.Copy Before:=Workbooks(ThisWorkbook).Sheets("00") 错误类型不匹配 “test.xls”与ActiveWorkBook位于同一文件夹中。 特别是-有没有办法不用打开“test.xls”就可以做到这一点?也许我想简单一点,但如果你想复制所有工作表,基本上就是复制整个电子表格文件。以编程方式将“旧”工作簿保存为新名称不是更容易吗?您将创建一个具有相同内容

我正试图把所有的纸张从一本书复制到另一本书

Windows("test.xls").Sheets.Copy Before:=Workbooks(ThisWorkbook).Sheets("00")
错误类型不匹配
“test.xls”与ActiveWorkBook位于同一文件夹中。

特别是-有没有办法不用打开“test.xls”就可以做到这一点?

也许我想简单一点,但如果你想复制所有工作表,基本上就是复制整个电子表格文件。以编程方式将“旧”工作簿保存为新名称不是更容易吗?您将创建一个具有相同内容的全新文件


也许我遗漏了什么,但这是另一个角度来看待它。

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

代码如下:

  • 打开一个关闭的工作簿
    c:\temp\Test.xls”)
  • 复制包含代码的工作簿中工作表
    00
    之前的所有工作表
  • 关闭
    Test.xls
代码抑制了Test.xls和屏幕更新中的任何警报、代码事件

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

如果OP希望合并两个工作簿,则不会。我的假设是,我在第2册中有另一张工作表,希望添加第1册中的工作表。非常好,感谢您逐步解释您在编码方面所做的努力。这是给管理员的:您应该更改一些规则。有些答案值得投票不止一次。