类型不匹配错误“ 13”-复制WorkSheet对象

时间:2018-12-16 20:56:32

标签: excel vba excel-vba

我正在与vba合作,将多个工作表存档到一个工作表“ Archive DataBase”中。我有一个单独的工作表“ Archive”,其中包含要存档的工作表的名称。我已经编写了一个子程序,该子程序应该可以完成归档过程。但是,我收到一个运行时错误'13'-在第17行上键入不匹配。 我发现类似的问题VBA- Type mismatch error when trying to copy/paste a row from one worksheet to another. Code provided并没有太大帮助。

Sub ArchivetoDB()

    Dim Lrow As Integer
    Dim itr As Integer
    Dim db As Worksheet

    Set db = Worksheets("Archive DataBase")
    Lrow = Worksheets("Archive").Cells(Rows.Count, 1).End(xlUp).Row

    For itr = 2 To Lrow
        Application.CutCopyMode = True
        Worksheets("Archive").Select
        'Select Sheet Name to Archive
        Worksheets("Archive").Range("A" & itr).Select
        Worksheets(Selection.Value).Activate
        'Copy selected sheet
        Worksheets(Selection.Value).Cells.Copy
        'Paste sheet to Archive DataBase
        db.Paste
        DoEvents
        Application.CutCopyMode = False
    Next itr

End Sub

1 个答案:

答案 0 :(得分:0)

现在,我可以理解您的需求了;您对所有工作表的评论均在同一工作簿中;除了一个名为“存档”的工作表外,此基本代码将遍历每个工作表,并将每个工作表的数据堆叠在“存档”工作表中。

Dim ws As Worksheet, destSht As Range

Set destSht = ThisWorkbook.Sheets("Archive").[A1]

For Each ws In ThisWorkbook.Sheets
    If ws.Name <> "Archive" Then
        With ws.UsedRange
            .Offset(3).Resize(.Rows.Count - 3).Copy destSht
            Set destSht = destSht.Offset(.Rows.Count - 3)
        End With
    End If
Next ws
相关问题