首页 > 解决方案 > VBA Excel根据列中的值删除行,如果为空则继续

问题描述

我对 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部分?

标签: excelvba

解决方案


改变,

myRange.Select
    Selection.Delete shift:=xlUp

... 至,

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

推荐阅读