VBA粘贴到同一行

时间:2016-03-28 17:26:11

标签: vba excel-vba excel

我试图找出如何将我的零值复制并粘贴到同一行。如果我有一系列来自G4:G8,它们会粘贴到C1:C4,我怎样才能让它们从C开始直接过去而不是C.

Sub CopyZeroData()
Dim sh1 As Worksheet, x As Long, y As Long, N As Long, rng As Range

Set sh1 = Sheets("Ecars")
    N = sh1.Cells(Rows.Count, "G").End(xlUp).Row
    y = 1

    For x = 1 To N
        Set rng = sh1.Cells(x, "G")
            If rng.Value = 0# Then
                rng.Copy sh1.Cells(y, "C")
                y = y + 1
            End If
    Next x
End Sub

谢谢!

1 个答案:

答案 0 :(得分:1)

您也可以在代码中使用偏移量。您的问题,看起来您正在循环G列,如果它等于零,您希望列c等于零。

Sub If_Zero()
    Dim sh1 As Worksheet, N As Long, rng As Range, c As Range

    Set sh1 = Sheets("Ecars")
    With sh1
        N = .Cells(.Rows.Count, "G").End(xlUp).Row
        Set rng = .Range("G1:G" & N)
    End With
    For Each c In rng.Cells
        If c = 0 Then c.Offset(0, -4) = c
    Next c

End Sub