我对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
中的
非常欢迎任何帮助!
答案 0 :(得分:3)
当您尝试将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
。这是你的循环改进:
form_tag