我试图找出如何将我的零值复制并粘贴到同一行。如果我有一系列来自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
谢谢!
答案 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