确定。所以我试图打开一个工作簿,删除该工作簿中的所有工作表,然后将其他工作簿中的所有工作表粘贴到我刚删除了所有工作表的工作簿中。 如果按顺序排列,可能有助于理解我要做的事情。
起点:工作簿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中所有工作表的空白工作表将标题为“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工作表有关。任何帮助将不胜感激。