如果完整范围为空,则VBA循环通过范围和输出

时间:2017-11-23 13:52:59

标签: vba

我已经搜索了很多关于我的问题,但找不到我需要的答案。

我有一张表A1:DT97138。在这个表中,我想检查每一行,如果一行中的所有单元格都是空的,则从单元格B2开始到DT2。然后输出"清空"或者"不是空的"在下一个单元格中,DU2。然后对行3,4等执行相同操作到97138(并在DU2,DU3等中每行输出相同的结果行)。

我发现如何为1个特定行执行此操作,如下所示,但我无法找到如何逐行遍历整个范围。

Sub rowEmpty()

    Dim rng As Range, r As Range
    Set rng = Range("B2:DT97138")

    If WorksheetFunction.CountA(Range("B2:DT2")) = 0 Then
        Cells(2, 125) = "Empty"
    Else
        Cells(2, 125) = "Not Empty"
    End If

End Sub

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

在最后一栏中一次输入您的公式:

With Range("DU2:DU97138")
     .Formula = "=IF(COUNTA(B2:DT2)=0,""Empty"",""Not Empty"")"
     'then eventually convert it to constants
     .Value = .Value
End With

没有循环,更简单,可能更快: - )