我希望有人可以帮助我。我有一张电子表格,其中有两张名为“详细信息”,另一张名为“已对帐”。我在详细信息中有1000多行,我想在列E中切割所有有0或a的行(我想剪切整行)并将其粘贴到工作表详细信息中。如果可能的话,我想将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这些值不会被移动,因为它们是四舍五入的(我认为这就是为什么它们不被移动)。此外,屏幕更新奇怪,我很抱歉,我无法解释它。
任何帮助将不胜感激
答案 0 :(得分:1)
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周围加上引号,这将进行数字比较
答案 1 :(得分:0)
使用自动过滤器:
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