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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Для того, чтобы программно подсчитать количество пустых ячеек в определённом диапазоне, можно воспользоваться нижеопубликованной функцией. При этом желательно учесть, что в отличии от формул, эта функция может быть использована при работе с несмежным диапазоном, кроме того, данную функцию можно использовать и как аналог стандартной функции рабочего листа =ПОДСЧИТАТЬПУСТОТЫ(), которая считает ячейки, содержащие апостроф ' или пустую строку "" пустыми.
 
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