我正在与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
答案 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