是否使用VBA代码删除A列中所有不包含单词“ DATE”或数字“ 1-31”的行?

时间:2019-05-11 21:11:12

标签: excel vba

我正在尝试将一张纸上多个表中的数据合并为一个综合表,其中每个单独表中的每一列均按“ DATE”列进行排序。如何使用VBA自动删除任何不包含单词“ DATE”或数字“ 1-31”的行?

我对VBA代码完全陌生。这是我的工作任务。我已经进行了大量谷歌搜索,但是无法找到符合我需要的代码。

1 个答案:

答案 0 :(得分:0)

我会做这样的事情。假设要检查的数据在Column A and B中,这将循环遍历并清除符合条件的单元格内容,然后映射空行以一次性删除所有内容。

Sub DelRows()

    Dim ws As Worksheet
    Dim delRange As Range
    Dim lrow As Long, i As Long

    Set ws = ActiveSheet

    With ws
        lrow = .Range("A" & .Rows.Count).End(xlUp).Row

        '--> Delete All rows where Cell A and Cell B are empty
        For i = 2 To lrow

            If .Range("A" & i).value = "DATE" Or .Range("B" & i).value = "1-31" Then
                .Range("A" & i).value = ""
                .Range("B" & i).value = ""
            End If

            If Len(Trim(.Range("A" & i).value)) = 0 Or Len(Trim(.Range("B" & i).value)) = 0 Then
                If delRange Is Nothing Then
                    Set delRange = .Rows(i)
                Else
                    Set delRange = Union(delRange, .Rows(i))
                End If
            End If
        Next i

        If Not delRange Is Nothing Then delRange.Delete

        Set delRange = Nothing

End Sub