2016-03-28 3 views
0

Я пытаюсь выяснить, как получить мои нулевые значения для копирования и вставки в ту же строку. Если у меня есть выбор из них от G4: G8, они наклеить С1: С4, как я могу заставить их идти прямо над с вне начиная с начала С.Вставка 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 

Спасибо!

+1

Изменить 'rng.Copy sh1.Cells (y," C ")' to'rng.Copy sh1.Cells (x, "C") '? – findwindow

+0

спасибо findwindow, я полностью просмотрел это! – MrASifuMason

ответ

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 
Смежные вопросы