已经阅读了许多关于此的帖子以及各种建议,似乎无法克服这个错误。
我有一系列代码块,用于在电子表格的 I 列中查找各种数据。如果找到该数据,则应删除该行。我想删除除标题行之外的所有内容,因此我的代码块如下(1个示例):
Sub Strip()
With Columns("I")
.AutoFilter Field:=1, Criteria1:="=70-79%", VisibleDropDown:=False
.Offset(1, 0).EntireRow.Delete
.AutoFilter
.AutoFilter
End With
End Sub
当我逐步执行此操作并到达 Offset 行时,它确实选择了正确的标准,但是当跨过该行时,我收到错误:运行时错误 1004:应用程序定义的或对象定义的错误。
有任何想法吗?
最佳答案
就像我在评论中提到的那样,您需要将列更改为范围。
试试这个(未经测试)
Sub Strip()
Dim ws As Worksheet
Dim lRow As Long
Set ws = Sheet1
With ws
.AutoFilterMode = False
lRow = .Range("I" & .Rows.Count).End(xlUp).Row
Set Rng = .Range("I1:I" & lRow)
With Rng
.AutoFilter Field:=1, Criteria1:="=70-79%", VisibleDropDown:=False
.Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow.Delete
End With
.AutoFilterMode = False
End With
End Sub
关于excel - .Offset(1, 0).EntireRow.Delete 出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44593830/