逐步在两个不同的工作簿中从一个工作表复制到另一个工作表
我有两个工作簿。 他们都是开放的。 Book1.xls和Book2.xlsm。 在每个工作簿中,我都有不同的工作表:
Book1.xls – > A1,A2,A3
Book2.xlsm – > B1,B2,B3
我想从Book1.A1到Book2.B2(或任何其他工作表)复制特定单元格范围(B5:I29)。
我似乎打了一个强硬的理解,遵循的语法和正确的程序。
我试过了:
' 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)
但我无法做到这一点。 你能解释我正确的程序设置工作簿,工作表,单元格区域,复制和粘贴?
谢谢
几个错误。
如果工作簿已打开,则只需更改即可
Set workbookToCopyFrom = Workbooks(FileToCopyFrom)
至
Set workbookToCopyFrom = Workbooks("Book1.xls")
另一个类似
Set workbookToCopyTo = Workbooks("Book2.xlsm")
另外,您还缺less范围对象和Sheet对象中的S
之前的DOT
。
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)