Подсчитать количество пустых ячеек в указанном диапазоне — Visual Basic(Бейсик)

Для того, чтобы программно подсчитать количество пустых ячеек в определённом диапазоне, можно воспользоваться нижеопубликованной функцией. При этом желательно учесть, что в отличии от формул, эта функция может быть использована при работе с несмежным диапазоном, кроме того, данную функцию можно использовать и как аналог стандартной функции рабочего листа =ПОДСЧИТАТЬПУСТОТЫ(), которая считает ячейки, содержащие апостроф ' или пустую строку "" пустыми.

Public Function CountEmpty&( _
    iDiapazon As Range, Optional iAnalog As Boolean)
 
    If Not iAnalog Then
       CountEmpty = _
       iDiapazon.Count - Application.CountA(iDiapazon)
    Else
       Dim iArea As Range
       For Each iArea In iDiapazon.Areas
           CountEmpty = _
           CountEmpty + Application.CountBlank(iArea)
       Next
    End If
 
End Function
Пример вызова вышеопубликованной авторской функции из макроса :

Private Sub Test()
 
    'CountEmpty
    
    MsgBox CountEmpty([A1:C3,C6:G8]) '[...], False
    MsgBox CountEmpty(Range("A1:C3,C6:G8"))
    MsgBox CountEmpty(Union([A1:C3], [C6:G8]))
 
    'CountBlank
    
    MsgBox CountEmpty([A1:C3,C6:G8], True)
 
End Sub
Пример вызова из ячеек рабочего листа:
=CountEmpty((A1:C3;C6:G8))
Замена функции =ПОДСЧИТАТЬПУСТОТЫ() :
=CountEmpty((A1:C3;C6:G8);1)
=CountEmpty((A1:C3;C6:G8);ИСТИНА)

Leave a Comment