首页 > 解决方案 > 类型不匹配错误“13” - 复制工作表对象

问题描述

我正在使用 vba 将多个工作表存档到一个工作表“存档数据库”中。我有一个单独的工作表“存档”,其中包含要存档的工作表的名称。我写了一个应该完成归档过程的子程序。但是,我收到运行时错误 '13' - Type Mismatch on Line 17尝试将一行从一个工作表复制/粘贴到另一个工作表时,我发现了类似的问题VBA- 类型不匹配错误。提供的代码没有多大帮助。

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

标签: excelvba

解决方案


现在我能理解你想要什么了;根据您对所有工作表的评论都在同一个工作簿中;此基本代码将遍历除名为“存档”的工作表之外的每个工作表,并将每个工作表数据堆叠在“存档”工作表中。

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

推荐阅读