如何使用VBA从Excel 2010中删除未过滤(隐藏)的数据
问题描述:
我是这个博客的新手,并且请求你们全部帮助我处理下面的代码。目前我正在尝试选择标准(基于唯一代码列表)并删除我无法执行的未过滤数据。因此请求为此添加程序。由于如何使用VBA从Excel 2010中删除未过滤(隐藏)的数据
ActiveSheet.Range("A5:K125000").AutoFilter Field:=11, Criteria1:=EngID
ActiveSheet.Range("A5:K125000").Select
ActiveSheet.Rows("A5:K125000").EntireRows.Hidden.Delete
ActiveSheet.Rows.Hidden = False
答
这里的反向滤波方法:
With ActiveSheet.Range("A5:K125000")
.AutoFilter Field:=11, Criteria1:="<>" & EngID
If .Columns(1).SpecialCells(xlCellTypeVisible).Count > 1 Then
.Resize(.Rows.Count - 1).Offset(1).SpecialCells(xlCellTypeVisible).EntireRow.Delete
End If
.AutoFilter
End With
和这里的循环方法:
Dim rgHidden As Range
Dim n As Long
ActiveSheet.Range("A5:K125000").AutoFilter Field:=11, Criteria1:=EngID
For n = 5 To 125000
If Rows(n).Hidden Then
If rgHidden Is Nothing Then
Set rgHidden = Rows(n)
Else
Set rgHidden = Union(rgHidden, Rows(n))
End If
End If
Next n
If Not rgHidden Is Nothing Then rgHidden.EntireRow.Delete
ActiveSheet.Range("A5:K125000").AutoFilter
+0
感谢rory :) ur星................... 。再次感谢它运作良好:) – brsindhe
容易过滤对于不符合标准,并使用'删除记录Specialcells(xlcelltypevisible)'否则你将不得不循环。 – Rory
嘿rory感谢您的帮助,请你给我提供循环程序?我尝试使用这个Criterial =“ EngID”删除以外的过滤,但它没有采取:( – brsindhe