【发布时间】:2021-01-24 02:38:45
【问题描述】:
我创建了代码以使用循环复制第一个名为“All-PID”的工作表上的所有 25 个动态工作表。
我之前能够运行很长的代码,现在卡在一条错误消息上。
Sub Consolidation()
'Create All-PID Worksheet
Sheets("PMCC-1").Select
Sheets("PMCC-1").Copy Before:=Sheets(1)
Sheets("PMCC-1 (2)").Select
Sheets("PMCC-1 (2)").Name = "All-PID"
Application.ScreenUpdating = False
'Copy PMCC-2 upto PMCC-25 to "All-PID" Worksheet
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "PMCC-1" Then
Dim s1 As Excel.Worksheet
Dim s2 As Excel.Worksheet
Dim iLastCellS1 As Excel.Range
Dim iLastRowS2 As Long
Set s1 = Sheets("All-PID")
Set s2 = ActiveSheet
iLastRowS2 = s2.Cells(s2.Rows.Count, "A").End(xlUp).Row
Set iLastCellS1 = s1.Cells(s1.Rows.Count, "A").End(xlUp).Offset(1, 0)
s2.Range("A2", s2.Cells(iLastRowS2, "W")).Copy iLastCellS1
End If
Next ws
End Sub
似乎卡在s2.Range("A2", s2.Cells(iLastRowS2, "W")).Copy iLastCellS1。
错误信息是
运行时错误“1004”
"这里不能粘贴,因为没有复制区和粘贴区
大小一样”。
【问题讨论】:
-
可能与问题无关,但请注意:1)
s2不应该是ws吗? 2)如果你不排除Sheets("All-PID"),它将在循环中处理,即在某些时候它将是ws,我认为这不是你想要的。