我试图在这里做三件事。三分之二似乎在起作用:
我试图遍历每个工作表(从标题为" Cover Sheet"的工作表开始)。这似乎有效。
在每个工作表中,我在D列中搜索包含" Assigned On"的单元格。这也似乎有效。
在每个工作表的单元格下面,应该是一行或多行数据(包含在D到J列中)。我想将每个工作表中的数据复制到一个名为" Due Outs"的工作表中。我无法完成这一步。
我的代码如下。我一直在match.CurrentRegion.Select
收到运行时1004错误,因为Range类的 select方法失败。我尝试了几种变体,包括Resize和Offset,并保持得到同样的错误。
Sub macroGetDue()
Dim ws As Worksheet
Dim match As Range
Dim findMe As String
Dim StartIndex As Integer
StartIndex = Sheets("Cover Sheet").Index + 1
findMe = "Assigned on"
For Each ws In Worksheets
If ws.Index > StartIndex Then
Set match = ws.Range("D:D").Find(findMe).Offset(1)
match.CurrentRegion.Select
Selection.Copy
Sheets("Due Outs").Range("D" & Rows.Count).End(xlUp).Offset(1).Select
Selection.Paste
End If
Next ws
End Sub
答案 0 :(得分:2)
始终建议避免使用“选择”,您可以将范围复制到另一个范围而不使用它。大多数情况下它失败了,因为WS没有激活。
最好像这样直接复制:
match.CurrentRegion.Copy Sheets("Due Outs").Range("D" & Rows.Count).End(xlUp).Offset(1)