在Excel工作表中,我有从A1到G12列的数据。在那个C列中,我有员工ID。由此我需要过滤某些员工ID并仅删除那些特定行。 示例:我需要过滤51168,79783,70682这3个员工ID并删除。 我试着录制一个宏。如果特定员工ID不在该位置,则意味着删除其他行。 任何人都可以帮我这个。 这是我记录的代码,
ActiveSheet.Range("$A$1:$I$12").AutoFilter Field:=3, Criteria1:=Array( _
"51168", "70682", "79783"), Operator:=xlFilterValuesRows("2:2").Select
Range("C2").Activate
Range(Selection, Selection.End(xlDown)).Select
Selection.Delete Shift:=xlUp
Range("C1").Select
ActiveSheet.Range("$A$1:$I$9").AutoFilter Field:=3
答案 0 :(得分:0)
首先执行过滤器, 选择结果并使用“ EntireRow ”关键字删除整行。
类似的东西:
ActiveSheet.Range("$A$1:$I$12").AutoFilter Field:=3, Criteria1:=Array( _
"51168", "70682", "79783"), Operator:=xlFilterValues
Range("A2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.EntireRow.Delete
还值得确保在删除所有空行之前至少有一个结果。
答案 1 :(得分:0)
我估计其间的所有行都会被删除,包括隐藏;由于列表不是那么长,您可能希望尝试在过滤后使用以下技巧删除行
For Each cell In Range("A2", Range("A2").End(xlDown)).SpecialCells(xlCellTypeVisible)
cell.EntireRow.Delete
Next