如果没有一个单元格缺少值,如何删除一行数据?

时间:2019-12-30 15:01:36

标签: excel vba

我有一个电子表格,其中包含许多不同商店在给定月份的销售数据。大约有450行(商店)要经过。每月的日子在第1行中,从B列开始,而商店编号在A列中,从第2行开始。我需要查找的是在不同日期缺少数据的行。我可以使用条件格式来突出显示为空的单元格,但这仍然有很多不足之处。我正在尝试通过删除不丢失数据的任何行来减少要查看的单元格数量。因此,如果一行没有丢失任何几天的数据,那么我就不需要查看它,并且可以删除它。但是,如果缺少数据,则保留该行。我一直想弄清楚实际的代码,但是我想出了想要的伪代码:

foreach row in range ($B$2:$AB$450)
    foreach cell in row 
        if cell < 1
            delete row
    end foreach
end foreach

以下是电子表格的示例:

        A           B               C               D
1               12/1/2019       12/2/2019       12/3/2019
2   Site 1          1000                            2000
3   Site 2          5000            5000            3000
4   Site 3          6000            4000            3000

在此示例中,第4行和第4行将被删除,因为它们没有丢失任何数据。

谢谢

1 个答案:

答案 0 :(得分:0)

如果没有空白单元格,则会引发错误,因此在这种情况下,我们仅继续下一个。不删除该行(因为这会导致数据向上移动),只隐藏整个行。

Dim salesRng as Range
Dim colCount as Long
Set salesRng = Range("B2:AB450")

For Each row in salesRng
    On Error Resume Next
    If row.SpecialCells(xlCellTypeBlanks).count = 0 Then
            row.hidden = true
        End If
Next row