我正在尝试更改一些现有代码以适应插入两行。代码看起来很合理,但它一直给我调试错误找不到单元格。代码的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
有没有人看到我没有看到的东西?
答案 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将再次导致运行时错误。