如果在列范围内所有单元格都为空白,则在Excel中删除一行

时间:2019-01-22 17:19:35

标签: excel vba

一段时间以来,我一直在寻找这个问题的答案。我发现了许多很棒的资源,它们显示了如果指定列中的单元格为空时如何使用宏删除行,但是我找不到任何可以检查列范围并删除列的内容。如果该列范围内的所有单元格都为空,则为行(如果D1:F1完全为空,则删除第1行,但如果D2:F2范围内的E2中有数据,则不要删除该行)。

这是我一直试图弄乱的代码

In [97]: np.random.seed(0)
    ...: a = np.random.randint(1,9,(100))

In [98]: %timeit extend2D(a, m=10000)
    ...: %timeit extend2D_v2(a, m=10000)
    ...: %timeit extend2D_v3(a, m=10000)
10000 loops, best of 3: 51.3 µs per loop
10000 loops, best of 3: 19.6 µs per loop
100000 loops, best of 3: 12.6 µs per loop

我从此答案Excel VBA: Delete entire row if cell in column A is blank (Long Dataset)中找到了上面的代码

如果我尝试将代码修改为

Application.ScreenUpdating = False
Columns("D:D").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Application.ScreenUpdating = True

然后我收到一条错误消息,提示“运行时错误1004:无法在重叠的部分上使用该命令。”

1 个答案:

答案 0 :(得分:0)

您必须做一个气泡来遍历各列,因为如果同一行中有不止一个单元格中有空白单元格,那么它将不起作用。