如果单元格标记为完成,则macros将行复制到新列

我试图学习如何编写一个macros,当列H中的单元格标记为“完整”它复制整个行,并将其粘贴到一个新的页面,称为“完成”,并从我当前页面删除行。

我试图自己录制,但不断打破它。 我没有线索,如果我这样做的权利。

这是我的代码到目前为止:

Sub Completed_Move() ' Completed_Move Macro Dim srchrng As Range, row As Range Set srchrng = Range("H1,H500") 'For each cel in srchrng If InStr(1, cel.Value) = Complete Then Activecell.Offset(0, -7).Range("A1:N1").Select Selection.Cut Sheets("Completed").Select Activecell.Select ActiveSheet.Paste Sheets("Current").Select Activecell.Rows("2:1").EntireRow.Select Selection.Delete Shift:=xlUp Activecell.Offset(2, 7).Range("A1").Select End if End Sub 

正如你在评论中所说,如果你有这样一个明确的错误信息:

预期结束小组

这意味着你的代码缺less一个End Sub来closures子! 只需将它添加到代码的最后。


这里是你的代码(与End Sub …),改进:

 Sub Completed_Move() 'Completed_Move Macro Dim SrchRng As Range, RowRg As Range, CellRg As Range Dim wS1 As Worksheet, wSC As Worksheet Dim i as Long With ThisWorkbook Set wS1 = .Sheets("Sheet1") Set wSC = .Sheets("Completed") End With 'ThisWorkbook Set SrchRng = wS1.Range("H1:H500") For i = SrchRng.Cells(SrchRng.Rows.Count,1).Row To SrchRng.Cells(1,1).Row Step -1 'If "Complete" is part of value in H If InStr(1, SrchRng.Cells(i,1).Value, "Complete") Then With wSC wS1.Range("A" & SrchRng.Cells(i,1).Row & ":N" & SrchRng.Cells(i,1).Row).Copy .Range("A" & .Range("A" & .Rows.Count).End(xlUp).Row + 1) End With 'wSC SrchRng.Cells(i,1).Rows("2:1").EntireRow.Delete Shift:=xlUp End If Next i End Sub