2016-03-28 23 views
0

Ich versuche herauszufinden, wie ich meine Nullwerte zum Kopieren und Einfügen in die gleiche Zeile bekommen. Wenn ich eine Reihe von ihnen von G4 haben: G8, fügen sie an C1: C4, wie kann ich sie ab Anfang C.VBA in die gleiche Zeile einfügen

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 

Dank direkt über mit heraus zu holen!

+1

Ändern 'rng.Copy sh1.Cells (y " C")' to'rng.Copy sh1.Cells (x, "C") '? – findwindow

+0

danke findwindow, ich habe das komplett durchgesehen! – MrASifuMason

Antwort

1

Sie können Offset auch in Ihrem Code verwenden. Ihre Frage, es sieht so aus, als würden Sie die Spalte G durchlaufen, wenn sie gleich Null ist, wollen Sie, dass Spalte c gleich Null ist.

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 
Verwandte Themen