代码之家  ›  专栏  ›  技术社区  ›  user8285660

如果满足条件,Vba复制并粘贴特定单元格

  •  0
  • user8285660  · 技术社区  · 8 年前

    如果C列中的值大于0,我正在尝试复制并粘贴每行C到F中的单元格。请帮助,谢谢!

    Private Sub CommandButton2_Click()
    Dim range1 As Range
    Dim Cell As Object
    Set range1 = Sheet1.Range("C8:C40")
    
    For Each Cell In range1
        If IsEmpty(Cell) Then
            End If
        If Cell.Value > 0 Then
        Sheet1.range(C:F).Copy
        Sheet5.Select
        ActiveSheet.Range("A40").End(xlUp).Select
        Selection.Offset(1, 0).Select
        ActiveSheet.Paste
        End If
        Next
        End Sub
    
    1 回复  |  直到 8 年前
        1
  •  1
  •   Scott Craner    8 年前

    您需要设置正在测试的行。

    也不要使用 .Activate .Select 它只会减慢代码的速度。

    Private Sub CommandButton2_Click()
    Dim range1 As Range
    Dim Cell As Range
    Set range1 = Sheet1.Range("C8:C40")
    
    For Each Cell In range1
        If Cell.Value > 0 Then
            With Sheet1
                .Range(.Cells(Cell.Row,"C"),.Cells(Cell.Row,"F")).Copy Sheet5.Range("A40").End(xlUp).Offset(1, 0)
            End With
        End If
    Next
    End Sub
    

    要仅使用值而不使用格式,请更改以下内容:

    .Range(.Cells(Cell.Row,"C"),.Cells(Cell.Row,"F")).Copy Sheet5.Range("A40").End(xlUp).Offset(1, 0)
    

    Sheet5.Range("A40").End(xlUp).Offset(1, 0).Resize(,4).Value = .Range(.Cells(Cell.Row,"C"),.Cells(Cell.Row,"F")).Value