Страницы: 1
RSS
Загнать в аргумент функции несвязанные ячейки
 
Добрый вечер!
помогите решить проблему...
Я нашел типовую функцию, которая считает кол-во ячеек, закрашенных определенным цветом из заданного диапазона

все работает, когда диапазон - ячейка или ОДНА группа ячеек,
а как мне описать аргументы функции, если я должен сослаться на несколько групп ячеек?

=CountCellsByAnyColor(G6:H9)   - вот так работает
=CountCellsByAnyColor(F5;H5;H8;F9;F12;I14;H16;G20)   -  а вот так  нет
Код
Public Function CountCellsByAnyColor(DataRange As Range) As Double
    'считает кол-во ячеек с фоном не прозрачным
      Dim Kol As Double
      Application.Volatile True
      Kol = 0
      For Each cell In DataRange
        If cell.Interior.Color <> 16777215 Then
            Kol = Kol + 1
        End If
      Next cell
      CountCellsByAnyColor = Kol
End Function
Изменено: Dron_Spb - 05.11.2015 23:29:05
 
Попробуйте передавать аргументы через ParamArray. Только не забывайте проверять тип переданных данных, прежде, чем использовать в коде функции
 
Цитата
МВТ написал: ParamArray
а можно  пример какой-нибудь...
я что-то не включаюсь...  - в аргументе массив прописать??
 
Код
Public Function CountCellsByAnyColor(ParamArray DataRange()) As Double
'считает кол-во ячеек с фоном не прозрачным
    Dim Kol As Double
    Application.Volatile True
    Kol = 0
    For Each cell In DataRange
    For Each c In cell.Cells
        If c.Interior.Color <> 16777215 Then
            Kol = Kol + 1
        End If
        Next
    Next cell
    CountCellsByAnyColor = Kol
End Function
На оба случая.
 
Цитата
Dron_Spb написал:
=CountCellsByAnyColor(F5;H5;H8;F9;F12;I14;H16;G20)   -  а вот так  нет
Вот так нужно: скобки - оператор объединения диапазонов
Код
=CountCellsByAnyColor((F5;H5;H8;F9;F12;I14;H16;G20)) 
 
вообще-то функцию можно и не переписывать.
достаточно использовать при вызове еще одну парочку скобок.
=CountCellsByAnyColor((F5;H5;H8;F9;F12;I14;H16;G20))
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Hugo, Казанский, ikki

Спасибо, друзья!!!!!

я там еще обдолбался почему не работает по цвету в еденичном варианте - а оказалось очень просто - цвет рисовался "условным форматированием" ...

Буду иметь ввиду!! :D
Страницы: 1
Читают тему
Наверх