我对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
部分吗?
答案 0 :(得分:1)
更改
myRange.Select
Selection.Delete shift:=xlUp
...到
If not myRange Is Nothing Then _
myRange.Delete shift:=xlUp