获取调试错误“找不到单元格”

时间:2015-11-05 18:23:26

标签: excel vba debugging

我正在尝试更改一些现有代码以适应插入两行。代码看起来很合理,但它一直给我调试错误找不到单元格。代码的Offset值为3,效果很好。一旦我添加了两行,我将Offset值更改为 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

添加两行后:

images

有没有人看到我没有看到的东西?

1 个答案:

答案 0 :(得分:1)

我不知道这是否是您的问题,但在使用ServerName localhost:8080 时您需要小心,因为您使用它的区域可能在表单之外&#39 ; s SpecialCells(当你预期时,它并不总是被重置)

例如:

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

然后运行

UsedRange

...给出了运行时错误,因为第二行不在当前的UsedRange中。

如果您在(例如)J10中输入一个值,然后重新运行上面的代码,它将不再出错。 如果从J10中删除该值,代码将继续运行而不会出现错误,因为Dim r As Range Set r = Range("A1").CurrentRegion.Offset(1,0).SpecialCells(xlCellTypeBlanks) 不会自动重置。如果你运行

UsedRange
然后,在立即窗格中

将重置UsedRange,而SpecialCells将再次导致运行时错误。