我使用以下代码,我在已过滤的列表中设置了一个范围,我想删除可见的单元格。我因为标题行而偏移了1,但是我在代码的最底部也有一行,我的总计在最后一行,我怎样才能删除除最后一行以外的所有可见行以保持我的总数?
With rng
.AutoFilter Field:=5, Criteria1:="<>*" & owner & "*"
.Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow.Delete
End With
由于
答案 0 :(得分:2)
试试这个
.AutoFilter Field:=5, Criteria1:="<>*" & owner & "*"
ActiveSheet.Rows(250).Hidden = True
.Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow.Delete
编辑:在聊天中发表讨论。
自动过滤时,行地址永远不会更改。因此,只需在自动过滤后隐藏行即可完成:)
答案 1 :(得分:0)
你可以调整位置&amp;在过滤以排除第一行和最后一行之前,相应地调整范围
With r.Offset(1, 0).Resize(r.Rows.Count - 2)
.AutoFilter Field:=5, Criteria1:="<>*" & owner & "*"
.SpecialCells(xlCellTypeVisible).EntireRow.Delete
End With
答案 2 :(得分:0)
我不明白你的自动过滤器标准,但这应该给你一个开始,
For x = 2 To Range("A65536").End(xlUp).Row - 1
If Sheets("sheet1").Rows(x).Hidden = False Then
If 1 = 1 Then ' Replace 1=1 with your autofilter criteria
Cells(x, 1).EntireRow.Delete
Else
End If
Else
End If
Next x
编辑:我及时发布了更好的答案。