VBA Excel根据列中的值删除行,如果行为空,则继续

时间:2018-08-01 10:18:04

标签: excel vba

我对VBA非常陌生,正在使用工作表中的表Tabel1,该表具有不同的列和行范围。我需要根据列Af中的值删除行。列中的单元格具有值或为空。 我以为我已经完成了此工作,这要归功于此网站上的许多人,但是,如果整列为空,我会在代码myRange.Select的最后部分收到错误消息。 我知道它的来源,没有选择。但是我不知道如何跳过它而不会出现更多错误。我已经搜索过该网站,但似乎找不到任何有效的方法。 下面是当列中有值时可以正常工作的代码。

Dim tbl As ListObject
Dim x As Long
Dim myRange As Range

Set tbl = ActiveSheet.ListObjects("Tabel1")
    For x = 1 To tbl.Range.Rows.Count
        If tbl.DataBodyRange(x, Range("Tabel1[Af]").Column) >= 1 Then
            If myRange Is Nothing Then
                Set myRange = tbl.ListRows(x).Range
        Else
            Set myRange = Union(myRange, tbl.ListRows(x).Range)
        End If
    End If
Next x
myRange.Select
    Selection.Delete shift:=xlUp

有人可以帮助我跳过.select部分吗?

1 个答案:

答案 0 :(得分:1)

更改

myRange.Select
    Selection.Delete shift:=xlUp

...到

If not myRange Is Nothing Then _
    myRange.Delete shift:=xlUp