excel - 类型不匹配错误“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
解决方案
现在我能理解你想要什么了;根据您对所有工作表的评论都在同一个工作簿中;此基本代码将遍历除名为“存档”的工作表之外的每个工作表,并将每个工作表数据堆叠在“存档”工作表中。
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
推荐阅读
- r - 如何使用 lmeresampler 从嵌套随机效应模型中获取系数的 p 值
- javascript - 当文件本身在服务器上呈现时如何在文件中获取浏览器的本地日期和时间
- excel - 根据 IF 命令的数字输入读取单元格
- javascript - 为什么当我设置状态时我的 React Hook 没有更新?
- go - 无法用 vscode 解析自己定义的 golang 包
- azure - CosmosDB + 分组依据
- excel - 循环遍历包含特定文本的行直到空白
- azure - Azure Powershell 从 CSV 文件中标记 VM
- bash - 如何在多线程while循环之外扩展变量
- php - Laravel 组合两个表并从其中一个表中计算值