自动filter不按预期工作

我试图删除在自动filter列中包含特定值的所有行。 出于某种原因,它不能按预期工作,只删除一些具有指定值的行,我决定找出为什么

我的代码是这样简单的:

Function GetRowRange(sheet, column, value) As Range 'check for a valid section column sheet.AutoFilterMode = False sheet.UsedRange.AutoFilter Field:=column, Criteria1:=value Set GetRowRange = sheet.AutoFilter.Range.SpecialCells(xlCellTypeVisible) sheet.AutoFilterMode = False End Function 

 With GetRowRange(importsheet, importsheet.UsedRange.Find("stato_4").column, "0") .Offset(1, 0).Resize(.Rows.Count - 1, .Columns.Count).Delete End With 

更新它是没有意义的。 我尝试将我的删除function更改为:

 For Each Row In GetRowRange(importsheet, importsheet.UsedRange.Find("stato_4").column, "0").Offset(1, 0).Rows Row.EntireRow.Delete iront = iront + 1 Next MsgBox iront 

它会认识到在这个范围内有42行(iront = 42),但是没有一个被删除

我想如果你有less于8192行(Excel 2010之前),你可以删除它们使用特殊单元格?

添加公式列,如果该行包含要testing的值,则会引发错误。

尝试这个:

'现在,这个公式将会在列中匹配条件的每行中放置#N / A。

  Range("C1:C" & Range("A1").End(xlDown).Row).FormulaR1C1 = "=IF(C[-2]=criteria,NA(),"""")" 

'然后使用SpecialCells和错误代码xlErrors返回包含要删除的行的范围。

  Range("C1:C" & Range("A1").end(xldown).row).SpecialCells(xlCellTypeFormulas,xlErrors).entirerow.delete 

对Oxgrid HTH有更多的了解

菲利普

不确定UsedRange是可靠的。 尝试使用Range("A1").CurrentRegion