2013-05-13 3 views
1

Введенный ниже код vba (измененный с here) вставляет пустую строку над любой строкой, которая имеет значение «0» в столбце E. Вместо того, чтобы вставлять пустую строку, есть способ скопировать строку с «0» и вставить ее над собой? Может ли этот код vba быть изменен для этого?Вставить скопированную строку на основе значения ячейки

Sub BlankLine() 

    Dim Col As Variant 
    Dim BlankRows As Long 
    Dim LastRow As Long 
    Dim R As Long 
    Dim StartRow As Long 

     Col = "E" 
     StartRow = 1 
     BlankRows = 1 

      LastRow = Cells(Rows.Count, Col).End(xlUp).Row 

      Application.ScreenUpdating = False 

      With ActiveSheet 
For R = LastRow To StartRow + 1 Step -1 
If .Cells(R, Col) = "0" Then 
.Cells(R, Col).EntireRow.Insert Shift:=xlDown 
End If 
Next R 
End With 
Application.ScreenUpdating = True 

End Sub 
+0

Вставьте скопированную строку выше * что *? В любом случае, да, это можно сделать, и это должно быть довольно легко. Пробовали ли вы использовать макрорекордер при ручном выполнении копирования/вставки? Это создаст код, который вы сможете использовать для изменения этого макроса. –

ответ

2

Просто добавьте эту строку

.Cells(R, Col).EntireRow.Copy 

перед вашей .Insert линии