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

Vba复制并粘贴特定单元格(如果满足条件),vba,rows,copy-paste,Vba,Rows,Copy Paste,如果列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 Sh

如果列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

您需要设置正在测试的行

也不要使用
。激活
。选择
只会降低代码速度

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)
致:


非常感谢。什么表达式会给我没有任何格式的值?@Philip请参见编辑,记住,如果通过单击答案旁的复选标记将其标记为正确。偏移功能的具体工作原理是什么,我想在其旁边创建另一个类似的表(相同高度和宽度)
offset(行、列)
它使用与父范围大小相同的范围来偏移提供给函数的列数和行数。谷歌
Range.Offset vba
了解更多信息。我如何让它们堆叠而不是并排放置。它似乎只允许我做两张桌子。
Sheet5.Range("A40").End(xlUp).Offset(1, 0).Resize(,4).Value = .Range(.Cells(Cell.Row,"C"),.Cells(Cell.Row,"F")).Value