获取debugging错误“未find单元格”

我试图改变一些现有的代码,以适应插入两行。 代码看起来很合理,但它一直给我debugging错误没有find单元格 。 代码有一个1英寸的偏移值,它工作正常。 一旦我添加了两行,我将Offset值更改为3 ,但之后开始给我一个debugging错误。 在两行之前:

  With Sheets("Main") .Range("A1").CurrentRegion.AutoFilter field:=5, Criteria1:="SC Link" .Range("A1").CurrentRegion.Offset(1).SpecialCells _ (xlCellTypeVisible).EntireRow.Delete .Range("A1").CurrentRegion.AutoFilter End With 

两行加法之后:

  With Sheets("Main") .Range("A1").CurrentRegion.AutoFilter field:=5, Criteria1:="SC Link" .Range("A1").CurrentRegion.Offset(3).SpecialCells _ (xlCellTypeVisible).EntireRow.Delete .Range("A1").CurrentRegion.AutoFilter End With 

有没有人看到我不?

我不知道这是否是您的问题,但是在使用SpecialCells的情况下,如果您使用的区域可能不在表单的UsedRange (在您可能预期)

例如:

从空白表格开始,只在第一行添加一些数据(比如A1:F1)

然后运行这个

 Dim r As Range Set r = Range("A1").CurrentRegion.Offset(1,0).SpecialCells(xlCellTypeBlanks) 

…给出运行时错误,因为第二行不在当前UsedRange范围内。

如果您在(例如)J10中input一个值,然后重新运行上面的代码,它将不会再提供错误。 如果从J10中删除该值,代码将继续运行而不会出现错误,因为UsedRange不会自动重置。 如果你跑步

 ? ActiveSheet.UsedRange.Address() 

在即时窗格中,那么将重置UsedRange和SpecialCells将再次导致运行时错误。