一步一步从一个工作表复制到两个不同工作簿中的另一个工作表

时间:2013-12-10 15:08:12

标签: excel vba excel-vba worksheet-function

我有两本工作簿。他们都是开放的。 Book1.xls和Book2.xlsm。在每个工作簿中,我都有不同的工作表:

Book1.xls - > A1,A2,A3

Book2.xlsm - > B1,B2,B3

我想将特定的单元格范围(B5:I29)从Book1.A1复制到Book2.B2(或任何其他工作表)。

我似乎在理解语法和正确的程序时遇到了困难。

我试过了:

' Set paths
FileToCopyFrom = "C:\Book1.xls"  'change path as required
FileToCopyTo = "C:\Book2.xlsm"         'change path as required

' Set Workbooks
Dim workbookToCopyFrom As Workbook
Set workbookToCopyFrom = Workbooks(FileToCopyFrom)
Dim workbookToCopyTo As Workbook
Set workbookToCopyTo = Workbooks(FileToCopyTo)

' Copy+paste
workbookToCopyFrom.sheet("A1")Range("B5:B29, I5:I29").Copy
Worksheets("B1").Range("A10").PasteSpecial (xlPasteValues)

但我无法实现。你能解释一下设置工作簿,工作表,单元格范围,复制和粘贴的正确程序吗?

谢谢

1 个答案:

答案 0 :(得分:2)

一些错误。

如果打开工作簿,则只需更改

Set workbookToCopyFrom = Workbooks(FileToCopyFrom)

Set workbookToCopyFrom = Workbooks("Book1.xls")

同样适用于其他

Set workbookToCopyTo = Workbooks("Book2.xlsm")

此外,您在范围对象之前缺少DOT,在Sheet对象中缺少S

workbookToCopyFrom.sheet("A1")Range("B5:B29, I5:I29").Copy

需要

workbookToCopyFrom.Sheets("A1").Range("B5:B29, I5:I29").Copy

接下来,您的目的地编码错误。我想你想这样做?

workbookToCopyFrom.Sheets("A1").Range("B5:B29, I5:I29").Copy
workbookToCopyTo .Sheets("B1").Range("A10").PasteSpecial(xlPasteValues)

所以最终代码将如下所示

Dim workbookToCopyFrom As Workbook
Dim workbookToCopyTo As Workbook

Set workbookToCopyFrom = Workbooks("Book1.xls")

Set workbookToCopyTo = Workbooks("Book2.xlsm")

' Copy+paste
workbookToCopyFrom.Sheets("A1").Range("B5:B29, I5:I29").Copy
workbookToCopyTo.Sheets("B1").Range("A10").PasteSpecial(xlPasteValues)