将特定范围的数据从一个工作簿复制到另一个工作簿

时间:2014-02-18 16:26:35

标签: excel-vba vba excel

我正在尝试从工作簿中复制数据并将其粘贴到另一个工作簿中。 我希望它能够复制特定范围,直到包含数据的最后一个单元格。

这是我到目前为止所得到的,但它给了我一个'下标超出范围'错误。

Sub BackLog()

With Workbooks("Backlog Query AHSI").Worksheets("Sheet1")
   lastRow = .Range("A" & .Rows.Count).End(xlUp).Row
End With

ThisWorkbook.Worksheets("Data").Range("A2:A" & lastRow).Value = Workbooks("Backlog Query AHSI").Worksheets("Sheet1").Range("A2:A" & lastRow).Value
ThisWorkbook.Worksheets("Data").Range("L2:L" & lastRow).Value = Workbooks("Backlog Query AHSI").Worksheets("Sheet1").Range("X2:X" & lastRow).Value
ThisWorkbook.Worksheets("Data").Range("M2:AH" & lastRow).Value = Workbooks("Backlog Query AHSI").Worksheets("Sheet1").Range("L2:AG" & lastRow).Value

End Sub

2 个答案:

答案 0 :(得分:0)

如果您使用复制,则只需为目标指定一个单元格:

Workbooks("Order Query AHSI").Worksheets("Sheet1").Range("A2:A" & lastRow).Copy ThisWorkbook.Worksheets("Data").Range("A2")

答案 1 :(得分:0)

  

哪一行会出错?
  ThisWorkbook.Worksheets(“Data”)。Range(“A2:A”& lastRow).Value =   工作簿(“订单查询AHSI”)。工作表(“Sheet1”)。范围(“A2:A”&   lastRow)。Value - user3324221 14分钟前

     

此时lastRow的值是多少?   这是1245

     

您是否在当前工作簿中有一个名为Data的工作表?啊...我在工作表名称中输入了一个拼写错误。意外地输入“Daata”。

我总是发现VBA错误'下标超出范围'让我走错了轨道,因为它立即让我查找超出范围的数字下标。但是在这种情况下,只是找不到命名的Sheet。