excel - .Offset(1, 0).EntireRow.Delete 出错

标签 excel vba

已经阅读了许多关于此的帖子以及各种建议,似乎无法克服这个错误。

我有一系列代码块,用于在电子表格的 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/

相关文章:

excel - Google Sheet double TRUE 给出 FALSE

vba - 在 VBA 中使用 powerpoint 的撤消命令

excel - VBA 使用 OFT 模板从 Excel 发送电子邮件 - 禁止自动签名

excel - VBA Excel - 函数卡住

vba - Excel VBA - 我可以操作另一个工作簿上的数据吗?

excel - VBA 从形状运行宏和屏幕提示(或工具提示)。我无法获得我发现工作的代码

VBA - 如果单元格为空白,则忽略 strBody 的一部分?

java - 如何在VBA中使用java方法

excel - 如何在 Excel 2010 中使用 VBA 获取目录中最后修改的文件

java - 插入错误 : java. sql.SQLException: ORA-00911: 无效字符