将工作表从一个Excel文档复制到另一个Excel文档

时间:2011-06-01 02:19:09

标签: excel vba

考虑2个Excel文档:Excel文件A和Excel文件B.这些Excel文件里面有工作表(文件A有a,b,c工作表,文件B有d,e,f工作表)。

我需要复制文件A中的任何内容,表单a(依此类推)并将其粘贴到我的试用和错误工作表的第二张表中。我知道我需要为此循环,但就是这样。

我对这个编程很陌生,更不用说VBA了。

我想复制表单a中的任何内容,到我的第二张表格,表单b中的内容,复制在表格3中,依此类推。

3 个答案:

答案 0 :(得分:1)

一些提示让你入门

(我不清楚你想要的一些细节,但这应该让你开始)

首先打开两个工作簿,在其中一个中创建一个模块(对这个代码无关紧要)然后运行宏

Option Explicit ' at top of module - forces explicit declaration of variables,
    'a good thing particularly while learning
Sub CopySheets()
    Dim wbFileA As Workbook
    Dim wbFileB As Workbook
    Dim sh As Worksheet
    Dim shCopAfter As Worksheet

    ' Point to the workbooks
    Set wbFileA = Application.Workbooks("NameOfFileA.xls")
    Set wbFileB = Application.Workbooks("NameOfFileB.xls")

    ' Set pointer to first sheet in FileB
    Set shCopAfter = wbFileB.Sheets(1)

    ' loop through the sheets in FileA
    For Each sh In wbFileA.Sheets
        ' Copy sheet to FileB
        sh.Copy After:=shCopAfter
        ' If last sheet in book then set shCopyAfter to last sheet
        If ActiveSheet.Index >= wbFileB.Sheets.Count Then
            Set shCopAfter = ActiveSheet
        Else
            ' Else set shCopyAfter to the one after the one just copied
            Set shCopAfter = wbFileB.Sheets(ActiveSheet.Index + 1)
        End If
    Next
End Sub

答案 1 :(得分:0)

Dim x as Integer
Dim wbA as Workbook, wbB as Workbook

Set wbA = Workbooks("FileA")
Set wbB = Workbooks("FileB")

For x=1 to wbA.Sheets.Count
   wbA.sheets(x).Copy After:=wbB.sheets((2*x)-1)
Next x

答案 2 :(得分:0)

好吧,最初提出此问题八年后,Power Query已集成到Excel中并可以提供帮助。 按照以下步骤,从目标工作簿(“ B”)中加载“ A”中的源工作表。

  1. 使用工作簿“ B”作为活动工作簿,转到“数据”->“获取数据” ->“来自文件”->“来自工作簿”,然后在文件浏览器中选择源工作簿“ A”。
  2. “电源查询导航器”对话框将 出现。
  3. 选择要复制的表/工作表,然后按“加载” (“转换数据”可用于微调导入。)
  4. 将加载源工作表。
  5. 对于要复制的每个工作表,重复步骤1.至4.。

此过程的好处是,如果源数据发生更改,则刷新目标“ B”中的数据所需要做的就是触发“数据”->“全部刷新”。

相关问题