将 Find Greater Than 的结果粘贴到下一个单元格中

Paste Results from Find Greater Than in Next Cell Down

我正在使我的团队每个月完成的工作簿自动化,并且一直受困于用于返回“查找大于”结果的代码。

我最初没有写这段代码,我在 Whosebug 上找到它并根据我的目的进行了改编。原始代码来自:

在我的 sheet“Agent Count”上,我在 A、B、C 列中有信息,其中 C 包含数字计数结果。该代码查找任何大于 50 的计数。 当代码在 C 列中找到大于 50 的计数时,它会将这三个单元格复制并粘贴到同一 sheet 上的新位置,从“F2”开始。为大于 50 的计数创建单独的摘要 table。

代码成功找到并复制和粘贴了大于 50 的计数。但是在粘贴结果后它没有向下移动到下一行。所以将下一个结果粘贴到上一个结果的顶部。

如何编写代码,使粘贴在每个结果的 F2、F3、F4 等行中向下移动?

Sub FindGreaterThan50V3()
    
    Dim range1 As Range
    Dim cell As Range
    Set range1 = Sheets("Agent Count").Range("c:c")
    
    For Each cell In range1
        If cell.Value > 50 Then
            With Sheets("Agent Count")
                .Range(.Cells(cell.Row, "a"), .Cells(cell.Row, "c")).Copy _
                   Sheets("agent count").Range("f2").End(xlUp).Offset(1, 0)
            End With
        End If
    Next cell
    
    
End Sub

这个:

 .Range(.Cells(cell.Row, "a"), .Cells(cell.Row, "c")).Copy _
       Sheets("agent count").Range("f2").End(xlUp).Offset(1, 0)

大概应该是:

 .Range(.Cells(cell.Row, "a"), .Cells(cell.Row, "c")).Copy _
        Sheets("agent count").Cells(Rows.Count, "F").End(xlUp).Offset(1, 0)

更多建议:

Sub FindGreaterThan50V3()
    
    Dim range1 As Range, ws As WorkSheet
    Dim cell As Range

    Set ws = ThisWorkbook.Sheets("Agent Count")
    'no need to scan the whole column
    Set range1 = ws.Range("C1:C" & ws.cells(ws.Rows.Count, "C").End(xlUp).Row)
    
    For Each cell In range1.Cells
        If cell.Value > 50 Then
            cell.Resize(1, 3).Copy _
               ws.Cells(ws.Rows.Count, "F").End(xlUp).Offset(1, 0)
        End If
    Next cell
End Sub