在我的Excel工作表中,如果单词"已关闭,我希望它将Sheet1(" Action Register")中的整行移动到sheet2("已完成") #34;在列J的行中,然后删除第一个工作表上的行。 这是我到目前为止的代码,但它并没有复制所有"关闭"来自"行动登记册"的行到了'#34;已完成"表单,它只复制其中一行,然后删除所有行。有人可以帮助指出我出错的地方吗? 感谢
Sub Copyx()
Sheets("Action Register").Select
RowCount = Cells(Cells.Rows.Count, "I").End(xlUp).Row
For i = 1 To RowCount
Range("J" & i).Select
check_value = ActiveCell
If check_value = "closed" Or check_value = "closed" Then
ActiveCell.EntireRow.Copy
Sheets("Completed").Select
RowCount = Cells(Cells.Rows.Count, "A").End(xlUp).Row
Range("A" & RowCount + 1).Select
ActiveSheet.Paste
Sheets("Action Register").Select
End If
Next
'-
Dim c As Range
Dim SrchRng
Set SrchRng = ActiveSheet.Range("J1", ActiveSheet.Range("J50000").End(xlUp))
Do
Set c = SrchRng.Find("closed", LookIn:=xlValues)
If Not c Is Nothing Then c.EntireRow.Delete
Loop While Not c Is Nothing
End Sub
答案 0 :(得分:0)
尝试此剪切并插入以实现此目的。
Sub Copyx()
Sheets("Action Register").Select
RowCount = Cells(Cells.Rows.Count, "I").End(xlUp).Row
For i = 1 To RowCount
Range("J" & i).Select
check_value = ActiveCell
If check_value = "closed" Or check_value = "closed" Then
ActiveCell.EntireRow.Cut
Sheets("Completed").Select
RowCount = Cells(Cells.Rows.Count, "A").End(xlUp).Row
Range("A" & RowCount + 1).Select
Selection.Insert Shift:=xlDown
Sheets("Action Register").Select
End If
Next
'-
Dim c As Range
Dim SrchRng
Set SrchRng = ActiveSheet.Range("J1", ActiveSheet.Range("J50000").End(xlUp))
Do
Set c = SrchRng.Find("closed", LookIn:=xlValues)
If Not c Is Nothing Then c.EntireRow.Delete
Loop While Not c Is Nothing
End Sub