Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Передача цвета ячеек диапазона в массив
 
JeyCi, ввиду того, что кол-во столбцов с цветными ячейками и текстовыми критериями планируется гораздо больше, чем в исходном тестовом файле, то вводить дополнительные столбцы с просчетом протягиванием функции определения цветового индекса будет неудобным. Мне как раз требовался расчет нужных значений по одной формуле в одной ячейке. Согласен, что конечная формула не выглядит лаконичной, но на данный момент удовлетворяет всем ожиданиям. Извиняюсь, если ввел в заблуждение на каком-то этапе  :) И большое спасибо за дельные советы, акценты на нюансы и последнюю ссылку!  ;)  

The_Prist, благодарю за ссылки! Со временем кол-во критериев будет больше. Но, под иную похожую задачу — очень кстати!
Изменено: johnnyr8891 - 09.12.2015 00:15:54
Передача цвета ячеек диапазона в массив
 
The_Prist, спасибо! Для моей задачи это не совсем удобный способ, но я попробую на досуге для общего развития.
Передача цвета ячеек диапазона в массив
 
Казанский, спасибо большое! Здорово, когда мысли в нужное русло направляются! =SUMPRODUCT помог решить задачу, выкладываю файл с решением. Функция, предложенная JeyCi, почему-то не отрабатывает, с функцией от The_Prist, все в порядке.

Цитата
Казанский написал:
Criteria_range1: is the range of cells
Да, я обращал на это внимание и не знал, как поступить. Но, раз уж вопрос решен другим способом, то теперь чисто спортивный интерес — можно ли массив преобразовать в диапазон для подстановки в виде аргумента в функцию =SUMIFS?
Передача цвета ячеек диапазона в массив
 
JeyCi, еще раз – большое спасибо!

Моя изначальная задумка, похоже, не совсем сработала. Попробую объяснить задачу введения данной функции в контексте более широкой задачи.

Имеются 2 столбца: 1 заполнен цветными ячейками и числовыми значениями этих ячеек, 2 — текстовыми примечаниями ("Действие 1", "Действие 2"). Необходимо найти сумму ячеек на основе цвета и текстового примечания, т.е., всего 4 суммы: 2 для красных и Действия 1, 2 — для оранжевых и Действия 2.

Искомая функция нужна была для возвращения диапазона значений индексов цвета выбранных ячеек, чтобы в дальнейшем при помощи функции =SUMIFS, критерия по индексу цвета, диапазону текстовых примечаний и критерия самого примечания вычислить сумму значений ячеек.
Я пробовал вычислить эти суммы, задействовав макросы от JeyCi, и The_Prist, и переименовав функции в них как cCol_JC и cCol_TP для удобства, но всегда получал ошибку #VALUE!

Прилагаю скриншоты и сам файл.
Скрытый текст
Передача цвета ячеек диапазона в массив
 
Цитата
Казанский написал: x(lr, lc) = targetRange.Cells(lr, lc).Interior.ColorIndex
Попробовал заменить, теперь функция отрабатывает произвольный диапазон в столбце. Предыдущий мой пост (#13) уже не актуален.

The_Prist, JeyCi, Казанский, огромнейшее человеческое спасибо!
Передача цвета ячеек диапазона в массив
 
The_Prist, да, вы правы.

Заметил, что 2 варианта кода работают не совсем корректно. Если диапазон начинается с 1 ячейки столбца, то все отлично, однако если задать произвольный диапазон, например, А3:А6, то результатом работы функции будут коды ячеек А1:А4. См. прикрепленный файл.
Изменено: johnnyr8891 - 07.12.2015 21:54:32
Передача цвета ячеек диапазона в массив
 
Цитата
JeyCi написал: создавая функцию, не забывайте указывать, какой тип данных ей вернуть...
Спасибо за советы! Буду теперь осваивать.

Цитата
Казанский написал: вставить функцию в диапазон как формулу массива
Да, у меня тоже не срабатывает, только по F9 вывод массива.
Передача цвета ячеек диапазона в массив
 
Пожалуй, это самый быстрый верный ответ, который я когда-либо получал на форумах. Огромное вам спасибо! Сразу увидел весь провал своего опыта в VBA  :) До вашего варианта я бы еще очень долго думал.
Передача цвета ячеек диапазона в массив
 
Да, я в том же направлении думаю. У меня не получается реализовать это.
Передача цвета ячеек диапазона в массив
 
Добрый вечер, форумчане!

Третий день бьюсь над задачей, видимо, пора уже сдаться и попросить совета у вас.

Имею в таблице столбец, заполненный цветными ячейками.
Требуется получить численный массив из индексов цветов ячеек выбранного диапазона как результат работы функции. Привязки к диапазону не должно быть, т.е. при инициализации функции в качестве параметра выбирается диапазон, по которому функция будет формировать численный массив из цветовых индексов ячеек (как при нажатии на F9 формируется массив значений выбранных ячеек).

Пробовал такой код (знаю, что ерунда и он неверный):
Код
Function cellColor(targetRange As Range)
    Dim cArr As Variant
    For Each cArr In targetRange
        cArr = targetRange.Interior.ColorIndex
    Next
    cellColor = cArr
End Function
И еще множество его вариантов с переменными для сохранения массива, результатов они не дали, кроме вывода цветового индекса одной выбранной ячейки.

Буду признателен за помощь!
Изменено: johnnyr8891 - 07.12.2015 20:22:30
Страницы: 1
Наверх