【发布时间】:2021-11-16 12:05:27
【问题描述】:
我试图仅将数据从一个工作簿复制到一个新工作簿中,但只有四个现有工作表。下面的代码允许我成功地将所有工作表复制到新工作簿。这以前工作得很好,但现在我只想复制工作表 2-7,因此不包括工作表 1。
这是通过用户将数据复制到工作表 1 来完成的,数据将填充到工作表 2-5。工作表 6 和 7 包含所有新工作簿的元数据。为了能够导入复制的数据,我需要一个带有工作表 2-7 的新工作簿。
Sub Button1_Click()
Dim Output As Workbook
Dim Current As String
Dim FileName As String
Set Output = ThisWorkbook
Current = ThisWorkbook.FullName
Application.DisplayAlerts = False
Dim SH As Worksheet
For Each SH In Output.Worksheets
SH.UsedRange.Copy
SH.UsedRange.PasteSpecial xlPasteValuesAndNumberFormats, _
Operation:=xlNone, SkipBlanks:=True, Transpose:=False
Next
FileName = ThisWorkbook.Path & "\" & "Generic name.xlsx" 'Change name as needed
Output.SaveAs FileName, XlFileFormat.xlOpenXMLWorkbook
Workbooks.Open Current
Output.Close
Application.DisplayAlerts = True
End Sub
关于如何改进代码以仅复制指定的工作表或排除工作表 1 的任何建议?
【问题讨论】:
-
If SH.Index <> 1 Then -
您能否分享一下 1.) 您要按原样复制哪些工作表,2.) 您要复制哪些工作表的值和数字格式,以及 3.) 您不想复制哪些工作表'不想复制?