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);ИСТИНА) |