4

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

Windows("test.xls").Sheets.Copy Before:=Workbooks(ThisWorkbook).Sheets("00")

错误类型不匹配!
“test.xls”与 ActiveWorkBook 位于同一文件夹中。
特别是 - 有没有办法在不打开“test.xls”的情况下做到这一点?

4

2 回答 2

9

您可以打开关闭的工作簿(在后台打开比使用关闭的书籍要容易得多),然后将所有工作表从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
于 2012-08-19T23:23:19.030 回答
4

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

也许我错过了一些东西,但这是看待它的另一个角度。

于 2012-08-19T21:58:40.927 回答