将 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
我正在使我的团队每个月完成的工作簿自动化,并且一直受困于用于返回“查找大于”结果的代码。
我最初没有写这段代码,我在 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