Vba循环范围特定范围

Vba循环范围特定范围,vba,excel,excel-formula,Vba,Excel,Excel Formula,我正在设计一个宏,当它运行时,它会在C列中查找值“2”,并将该行仅从单元格a-C复制到sheet2中。我正在使用的代码不起作用。请你帮我一下好吗 Sub LoopRange() Dim rCell As Range Dim rRng As Range Set rRng = Sheet1.Range("C1:C20") For Each rCell In rRng.Cells If rCell.Value = "2" Then Range(Cells(1,

我正在设计一个宏,当它运行时,它会在C列中查找值“2”,并将该行仅从单元格a-C复制到sheet2中。我正在使用的代码不起作用。请你帮我一下好吗

Sub LoopRange()

  Dim rCell As Range
  Dim rRng As Range

  Set rRng = Sheet1.Range("C1:C20")

  For Each rCell In rRng.Cells

    If rCell.Value = "2" Then
    Range(Cells(1, 1), Cells(3, 3)).Copy Sheets("Sheet2").Cells(1, 1)
    End If

  Next rCell

End Sub

您当前的代码每次都将完全相同的单元格复制到完全相同的位置。请尝试以下方法:

Sub test()
  Dim rCell As Range
  Dim rRng As Range
  Dim cnt As Long
  cnt = 1

  Set rRng = Sheet1.Range("C1:C20")

  For Each rCell In rRng.Cells
    If rCell.Value = "2" Then
        Range(Cells(rCell.Row, 1), Cells(rCell.Row, 3)).Copy Sheets("Sheet2").Cells(cnt, 1)
        cnt = cnt + 1
    End If
  Next rCell
End Sub
表1试验数据:

表2结果:


当它运行时,不会拾取任何东西或循环。但用纸张(“Sheet1”)进行测试。范围(.Cells(1,1),.Cells(3,3))。复制纸张(“Sheet2”)。单元格(1,1)以“从第1页复制并粘贴到第2页有效。但是,当我试着让它在工作表中循环时,我没有得到任何结果。我们将完全相同的范围复制到完全相同的位置。我猜这就是你在if语句中想要的:
Range(Cells(rCell.Row,1),Cells(rCell.Row,3))。Copy Sheets(“Sheet2”)。Cells(rCell.Row,1)
感谢Runner,但我尝试了那个代码,但没有成功,Cells(1,1),cell(3,3)如果在C列中找到值2,是否要复制我的定义范围。谢谢,您发布的代码工作正常。非常感谢,似乎无法在时间线上看到它。我已删除它,因为我不理解您复制相同定义范围的要求。我转载了它,因为它帮助了你。当做