我对VBA很新,我正在努力解决以下问题。我通常会得到一张10-20张的excel文件。然后,我将每张纸的相同范围的单元格(i76:i133)从一本书复制到另一本具有相同纸张结构的书。
我正在尝试制作一个循环来轻松编码,但我失败了。
Sub copy()
Dim Sourcebook As Workbook
Dim Destinationbook As Workbook, mysheet As Worksheet
Set Sourcebook = Workbooks("Quarterly.xlsx")
Set Destinationbook = Workbooks("Master.xlsx")
For Each mysheet In Sourcebook.Worksheets
Sourcebook.Sheets(mysheet).Range("I76:I133").Copy
Destinationbook.Sheets(mysheet).Range("I76").Paste
Next
End Sub
我得到了
运行时错误13,类型不匹配
在Sourcebook.Sheets(mysheet).Range("I76:I133").Copy
非常欢迎任何帮助!
当你试图将它用作mySheet
时,你的Worksheet type
变量是String
。这是你的循环改进:
For Each mysheet In Sourcebook.Worksheets
'Sourcebook.Sheets(mysheet).Range("I76:I133").Copy 'instead of this...
mysheet.Range("I76:I133").Copy '...use this
Destinationbook.Sheets(mysheet.Name).Range("I76").Paste
Next