2016-03-28 18 views
0

私はゼロ値をコピーして同じ行に貼り付ける方法を理解しようとしています。私はG4からそれらの範囲を使用している場合:ありがとうC.同じ行へのVBAペースト

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 

先頭からどのように私は彼らが出て真上に行くために得ることができ、C4:G8を、彼らはC1に貼り付けます!

+1

変更 'rng.Copy sh1.Cells(Y、 "C")' to'rng.Copy sh1.Cells(X、 "C") '? – findwindow

+0

ありがとうfindwindow、私は完全にそれを見て! – MrASifuMason

答えて

1

コードでオフセットを使用することもできます。あなたの質問は、あなたが列Gをループしているように見えます。ゼロに等しい場合は、列cを0にします。

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 
関連する問題