如何将工作簿中的工作表复制到其他工作簿

我有这个代码复制工作簿中的工作簿VBA / Access到另一个工作簿/文件。

Dim File1 as String Dim File2 as String File1 = "D:\File1.xls" File2 = "D:\File2.xls" Windows(File1).Activate Sheets("Name of Sheet").Select Sheets("Name of Sheet").Copy Before:=Workbooks(File2).Sheets("Name of Target Sheet") 

这不起作用。 我需要在background.Also禁用任何macros复制。

  1. 我怎样才能使它工作?
  2. 我可以给,而不是“表名”索引?
  3. 我可以给索引数组复制到第二个工作簿?

如果您正在MS Access中运行,则需要以下内容:

 Dim CopyFrom As Object Dim CopyTo As Object ''Early binding: Workbook Dim CopyThis As Object Dim xl As Object ''Early binding: New Excel.Application ''Late binding Set xl = CreateObject("Excel.Application") xl.Visible = True ''To use a password: Workbooks.Open Filename:="Filename", Password:="Password" Set CopyFrom = xl.Workbooks.Open("z:\docs\From.xls") Set CopyThis = CopyFrom.Sheets(1) ''Sheet number 1 Set CopyTo = xl.Workbooks.Open("z:\docs\To.xls") CopyThis.Copy After:=CopyTo.Sheets(CopyTo.Sheets.Count) CopyFrom.Close False 

您需要先打开工作簿。

 Dim File1 As String Dim File2 As String File1 = "C:\Path\to\file\Book13.xlsx" File2 = "C:\Path\to\file\Book2.xlsx" Workbooks.Open Filename:=File2 Workbooks.Open Filename:=File1 ActiveWorkbook.Worksheets("Sheet2").Select Sheets("Sheet1").Copy Before:=Workbooks("Book2").Sheets(1) 

您可以使用表格名称或Sheets对象的索引。 要将多个工作表复制到另一个工作簿中,可以将数组传递到一个循环中。