小编Yrd*_*den的帖子

使用 .Range.Find() 方法删除行

我正在尝试查找包含以下值“#Results”的每个单元格,如果右侧的单元格是 == 0,则删除整行以及下面的行。

但是,由于我正在删除行,因此 .Range.Find 方法出现错误并且在第一次删除后无法找到下一次出现。我怎样才能使这段代码工作?

这是代码:

sub KillEmptyResults()

Dim sRows As Range
Dim X As Range

Set X = Nothing
SearchStr = Chr(35) & " Results"
With ActiveSheet.UsedRange
    Set X = .Cells.Find(What:=SearchStr, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlRows, SearchDirection:=xlPrevious, MatchCase:=False)
        If Not X Is Nothing Then
        sFirstAddress = X.address
        Do
            'Transform anchor row to entire range to delete
            If X.Offset(0, 1).Value = "0" Then
                Set sRow = Rows(X.Row).EntireRow
                Set sRows = sRow.Resize(sRow.Rows.Count + 1, sRow.Columns.Count)
                sRows.Delete
            End If
            Set X = .FindNext(X) …
Run Code Online (Sandbox Code Playgroud)

excel vba

0
推荐指数
1
解决办法
73
查看次数

标签 统计

excel ×1

vba ×1