Это код, который я написал, но в основном я хочу скопировать данные с одного листа на другой с условием, например: «закрыто», что строка на старом листе должна быть удалена. Я смог скопировать строку на другой лист, но он копировал строку 4 раза, я не могу понять, почему. Вы можете посмотреть этот код? Я не настолько продвинутый с VBA.Скопируйте данные с одного листа на другой и удалите строку из старого рабочего листа
Sub macro_1()
Dim lr As Long, lr2 As Long, r As Long
lr = Sheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Row
lr2 = Sheets("Sheet2").Cells(Rows.Count, "A").End(xlUp).Row
For r = lr To 2 Step -1
Last = Cells(Rows.Count, "G").End(xlUp).Row
For i = Last To 2 Step 1
If Range("G" & r).Value = "closed" Then
Rows(r).Copy Destination:=Sheets("Sheet2").Range("A" & lr2 + 1)
lr2 = Sheets("Sheet2").Cells(Rows.Count, "A").End(xlUp).Row
End If
If (Cells(i, "G").Value) = "closed" Then 'Cells (i, "A").EntireRow.ClearContents ' USE THIS TO CLEAR CONTENTS BUT NOT DELETE ROW
Cells(i, "A").EntireRow.Delete
End If
Next i
Next r
End Sub