我有两本工作簿。他们都是开放的。 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)
但我无法实现。你能解释一下设置工作簿,工作表,单元格范围,复制和粘贴的正确程序吗?
谢谢
答案 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)