如何使用vba仅将单个工作表复制到另一个工作簿

Sol*_*ker 12 excel vba excel-vba

我有1 WorkBook("SOURCE")包含约20张.
我想Workbook("TARGET")使用Excel VBA 仅将1个特定工作表复制到另一个工作表.

请注意,"TARGET"工作簿尚不存在.它应该在运行时创建.

使用的方法 -

1)Activeworkbook.SaveAs<---不起作用.这将复制所有工作表.我只想要特定的表格.

请回复此以及您的宝贵意见.

谢谢 !!

Sid*_*out 29

我有1个WorkBook("SOURCE"),包含大约20张.我想使用Excel VBA仅将1个特定工作表复制到另一个工作簿("TARGET").请注意,"TARGET"工作簿尚不存在.它应该在运行时创建.

其他方式

Sub Sample()
    '~~> Change Sheet1 to the relevant sheet
    '~~> This will create a new workbook with the relevant sheet
    ThisWorkbook.Sheets("Sheet1").Copy

    '~~> Save the new workbook
    ActiveWorkbook.SaveAs "C:\Target.xlsx", FileFormat:=51
End Sub
Run Code Online (Sandbox Code Playgroud)

这将使用相关工作表自动创建一个名为Target.xlsx的新工作簿

  • @ChrisB如果未为复制的工作表指定目标,则Excel默认将其放置在新工作簿中。 (2认同)

Nei*_*eil 12

要将工作表复制到名为TARGET的工作簿:

Sheets("xyz").Copy After:=Workbooks("TARGET.xlsx").Sheets("abc")
Run Code Online (Sandbox Code Playgroud)

这将使复印纸上XYZ在目标工作簿中的表后,ABC ,如果你想要把该板在目标工作簿中的表之前,替换之前在代码后明显.

要创建名为TARGET的工作簿,首先需要添加一个新工作簿,然后保存它以定义文件名:

Application.Workbooks.Add (xlWBATWorksheet)
ActiveWorkbook.SaveAs ("TARGET")
Run Code Online (Sandbox Code Playgroud)

但是,这可能不适合您,因为它会将工作簿保存在默认位置,例如"我的文档".

希望这会给你一些事情.