将范围从一个工作簿复制到另一个工作簿

时间:2020-09-16 16:15:48

标签: excel vba

我想将数据从一个工作簿复制到另一个工作簿。

以下行有效:

Workbooks(TempBook.Name).Worksheets(sheet_Index).Range("A1:A20").Copy _
  Workbooks(mainWB.Name).Worksheets(sheet_Index).Range("A1")

这会扔

应用定义或对象定义

Workbooks(TempBook.Name).Worksheets(sheet_Index).Range("A1", Range("A1").End(xlDown)).Copy _
  Workbooks(mainWB.Name).Worksheets(sheet_Index).Range("A1")

为什么不能选择动态范围?

1 个答案:

答案 0 :(得分:5)

  1. Range("A1").End(xlDown)需要具有工作表和工作簿的限定条件,否则将隐式包含在ActiveSheet中。
  2. Workbooks(TempBook.Name)应该只是TempBook。对于Workbooks(mainWB.Name)同样。
  3. 旁注:您可能考虑使用using xlUp而不是xlDown来查找最后一行。
With TempBook.Worksheets(sheet_Index)
    .Range("A1", .Range("A1").End(xlDown)).Copy _
        Destination:=mainWb.Worksheets(sheet_Index).Range("A1")
End With