将多张纸的相同范围的单元格从一本书复制/粘贴到另一本书

问题描述 投票:1回答:1

我对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

非常欢迎任何帮助!

vba excel-vba copy-paste excel
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.