【问题标题】:How to copy sheets from a workbook to another workbook如何将工作簿中的工作表复制到另一个工作簿
【发布时间】:2012-07-19 16:25:10
【问题描述】:

我有这段代码可以从 VBA 中的工作簿复制工作表/访问另一个工作簿/文件。

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")

这不起作用。 我需要在后台复制。还要禁用任何宏。

  1. 我怎样才能让它工作?
  2. 我可以用索引代替“工作表名称”吗?
  3. 我可以提供一组索引以复制到第二个工作簿吗?

【问题讨论】:

  • 我看到您已将 MS Access 添加到您的文本中,但删除了标签。您是在 MS Access 还是 Excel 中工作?
  • 我有一个Access文件并导入一个Excel文件:)

标签: excel vba ms-access ms-access-2010


【解决方案1】:

如果您在 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

【讨论】:

  • Adrian 它在 MS Access 中经过测试并且可以正常工作。你在哪里工作?
  • 我在一个简单的 Excel 上进行了测试。正在复制第一张工作表,但打开了 Excel。我需要在不打开 Excel 的情况下进行复制。我还需要从带有宏和登录/等的文件中复制。如何从原始文件中禁用此宏/等...?
  • 代码似乎有效。不仅像您提到的那样打开目标文件,而且还会打开用于复制的源文件。即使源文件被代码关闭,我很确定你可以在屏幕上看到它。问候洛基 ;-)
  • Adrian,您可以使用 ADO,也可以使用 Access 中的链接表,但如果您想要保留格式等的副本,则必须复制工作表。无论您做什么,文件都会以一种或另一种方式打开,尽管在 Access 和 ADO 中不太明显。
  • @Remou 哈哈,吓人 :-) 阿德里安,你唯一能做的就是拿走 application.visible = true,它不会显示正在发生的事件。要禁用宏事件,请使用 application.enableevents = false。希望对您有所帮助。
【解决方案2】:

您需要先打开工作簿。

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 对象中使用工作表名称或索引。要将多个工作表复制到另一个工作簿中,您可以将数组传递到循环中。

【讨论】:

    猜你喜欢
    • 2023-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多