如何将多个工作簿中的特殊内容粘贴到主工作簿

时间:2016-05-12 11:38:51

标签: vba excel-vba loops paste excel

我正在尝试将文件夹中所有文件的值粘贴到主文件夹,但我在粘贴过程中一直遇到错误。这是我的代码:

    Sub LoopThrough()
Dim MyFile As String
    Dim erow
    Dim FilePath As String
    Dim DestWB As Workbook
    Dim SourceWB As Workbook


    Set DestWB = ThisWorkbook


    FilePath = "C:\data\"
    MyFile = Dir(FilePath)


    Do While Len(MyFile) > 0
    If MyFile = "Master.xlsm" Then
    Exit Sub
    End If


    Set SourceWB = Workbooks.Open(FilePath & MyFile)
    Workbooks.Open (FilePath & MyFile)
    Range("A1:L51").Copy
    DestWB.Range(Cells(erow, 1), Cells(erow, 12)).PasteSpecial xlValues
    SourceWB.Close False
    MyFile = Dir
    Loop


    End Sub

我能帮忙吗?

1 个答案:

答案 0 :(得分:0)

这一行

DestWB.Range(Cells(erow, 1), Cells(erow, 12)).PasteSpecial xlValues

应该是

DestWB.Sheets("Target Sheet").Range(DestWB.Sheets("Target Sheet").Cells(erow, 1), DestWB.Sheets("Target Sheet").Cells(erow, 12)).PasteSpecial xlValues

可以重写为

With DestWB.Sheets("Target Sheet")
    .Range(.Cells(erow, 1), .Cells(erow, 12)).PasteSpecial xlValues
End With

关键是,当您没有引用Range()

时,您需要使用工作表和可能的工作簿对象来限定所有Cells()ActiveSheet方法

另请注意,我已使用"Target Sheet",但应将其更改为您实际要粘贴的工作表的名称。