有条件地将行移动到另一个工作表中

我希望有人能帮助我。 我有一张名为“细节”的另一张电子表格,另一张名为“已对帐”的电子表格。 我在Details中有1000多行,我想剪切E列(我想剪切整行)中所有具有0或者 – 的行,并将其粘贴到Sheet Details中。 如果可能的话,我想复制并粘贴标题从Reconciled到详细信息。

我试过使用这个代码(稍微修改)在另一篇文章中使用

Sub Test() For Each Cell In Sheets("Details").Range("E:E") If Cell.Value = "0" Then matchRow = Cell.Row Rows(matchRow & ":" & matchRow).Select Selection.Copy Sheets("Reconcile").Select ActiveSheet.Rows(matchRow).Select ActiveSheet.Paste Sheets("Details").Select End If Next End Sub 

但是有两个问题。 因为有些值(数字是真的)会被移动,但0.00的值不会被移动,因为它们是四舍五入的(我认为这就是为什么它们没有被移动)。 此外,屏幕更新奇怪,我很抱歉,我不能解释更多。

任何帮助,将不胜感激

  Sub Test() Application.ScreenUpdating = False On Error Goto Finish For Each Cell In Sheets("Details").Range("E:E") If Cell.Value = 0 Or Cell.Value = "-" Then cell.EntireRow.copy Sheets("Reconcile").Rows(cell.Row) Next Finish: Application.ScreenUpdating = True End Sub 

注意:不要在0附近加引号,这会使数字比较

使用自动filter:

 Public Sub Test() Application.ScreenUpdating = False With Worksheets("Details").UsedRange .Parent.AutoFilterMode = False .AutoFilter .AutoFilter Field:=5, Criteria1:="0" .Copy With Worksheets("Reconciled").Cells(1, 1) .PasteSpecial xlPasteColumnWidths .PasteSpecial xlPasteAll .Parent.Activate: .Select End With .Rows(1).Hidden = True .SpecialCells(xlCellTypeVisible).EntireRow.Delete .Rows(1).Hidden = False .AutoFilter .Parent.Activate .Cells(1, 1).Activate End With Application.ScreenUpdating = True End Sub