好 . 所以我试图打开一个工作簿,删除该工作簿中的所有工作表,然后将所有工作表从另一个工作簿粘贴到我刚删除了所有工作表的工作簿中 . 如果我把它按顺序排列,它可能有助于理解我想要做什么 .

起点:工作簿1已打开 . 从这里:

1)打开工作簿2

2)向工作簿2添加一个空白工作表(这将是我可以删除工作簿2中的所有工作表.Excel将不允许删除所有工作表,而工作簿中至少没有一个工作表)

3)删除工作簿中的所有工作表2但是在步骤2中添加了空白工作表,然后保存工作簿 .

4)从工作簿1复制所有工作表

5)将工作簿1中的所有工作表粘贴到工作簿2中(我想指定我要复制并粘贴工作表 . 不要移动它们)

6)保存工作簿2

7)关闭工作簿2

我正在开发此宏的原因是因为工作簿2基本上是工作簿1的副本,因此工作簿1中所做的任何更改都需要反映在工作簿2中 .

我在下面提出了以下宏,但它有一些我需要帮助纠正的错误 .

注意:工作簿2将与工作簿1相同,接受它将具有不同的文件名 .

注意:要添加到工作簿2以准备删除步骤3中所有工作表的空白工作表将 Headers 为“ABCDEFG”

Sub Copy_Sequence()

Workbooks.Open ("C:\Users\Documents\Workbooks\Workbook 2.xlsx")
ThisWorkbook.Activate

Dim newsheet
Set newsheet = Sheets.Add(After:=Sheets(Worksheets.Count), Count:=1,      Type:=xlWorksheet)
newsheet.Name = "ABCDEFG"



Dim xWs As Worksheet
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each xWs In Application.ActiveWorkbook.Worksheets
If xWs.Name <> "ABCDEFG" Then
xWs.Delete

   End If

 Next

Application.DisplayAlerts = True
Application.ScreenUpdating = True
ActiveWorkbook.Save


Dim b1 As Workbook, b2 As Workbook
Dim sh As Worksheet

Workbooks.Open Filename:="C:\Users\Documents\Workbooks\Workbook 2.xlsx"
Set b1 = ActiveWorkbook
Workbooks.Open Filename:="C:\Users\Documents\Workbooks\Workbook 1.xlsx"
Set b2 = ActiveWorkbook

For Each sh In b2.Sheets
Application.DisplayAlerts = False
sh.Copy After:=b1.Sheets(b1.Sheets.Count)
Application.DisplayAlerts = True

  Next sh

 Sheets("ABCDEFG").Select
ActiveWindow.SelectedSheets.Delete

ActiveWorkbook.Save
ActiveWorkbook.Close

End Sub

我真的需要按此顺序执行此操作,因为它与在SharePoint网站中显示Excel工作表有关 . 任何帮助将不胜感激 .