Vba Excel Определить Цвет Заливки Ячейки • Примеры кода

Как получить цвет фона из условного форматирования в Excel с помощью VBA

Я хотел бы получить цвет фона ячейки, назначенный с помощью правила условного форматирования в Excel в моем скрипте VBA. Я понял, что использование свойства Range.Interior.Color не имеет цвета, полученного в результате применения функции условного форматирования из Excel.

Я провел некоторые исследования и нашел этот длинный путь здесь , он компилируется и запускается, но я не получаю назначенный цвет [я получаю всегда (255,255,255)]

Я использую Excel 2016, и мне интересно, есть ли более простой способ получить эту информацию, используя какую-то встроенную функцию VBA или используя любой другой трюк excel.

специалист
Мнение эксперта
Витальева Анжела, консультант по работе с офисными программами
Со всеми вопросами обращайтесь ко мне!
Задать вопрос эксперту
До появления Excel 2007 существовала только ограниченная палитра для заливки ячеек фоном, состоявшая из 56 цветов, которая сохранилась и в настоящее время. Если же вам нужны дополнительные объяснения, обращайтесь ко мне!
До появления Excel 2007 существовала только ограниченная палитра для заливки ячеек фоном, состоявшая из 56 цветов, которая сохранилась и в настоящее время. Каждому цвету в этой палитре присвоен индекс от 1 до 56. Присвоить цвет ячейке по индексу или вывести сообщение о нем можно с помощью свойства.Interior.ColorIndex:

Работа с объектом Range — Макросы и программы VBA — Excel — Каталог статей — Perfect Excel

Цветовая система RGB представляет собой комбинацию различных по интенсивности основных трех цветов: красного, зеленого и синего. Они могут принимать значения от 0 до 255. Если все значения равны 0 — это черный цвет, если все значения равны 255 — это белый цвет.

Как посчитать значения ячеек на основе цвета заливки

Excel по-разному обрабатывает два типа цветного фона ячеек: заливка сплошным цветом, заданная пользователем (когда вы сами назначаете цвет) и условный цвет (при применении условного форматирования). С надстройкой вы можете агрегировать значения по каждому типу цветного фона.

Из выпадающего списка «Учитывать только» выберите, какой тип цветовой расцветки следует учитывать в дальнейших расчётах:

Посмотрите результаты в сводной таблице результатов агрегатных вычислений: Счёт, Сумм, Срзнач, Мин, Макс – с разбивкой по цвету.

Внимание: надстройка автоматически распознает и произведет расчёт по всем цветам в диапазоне. Ячейки без фона, без заливки и ячейки с белой заливкой обрабатываются вместе. Так, вы сможете сравнить результаты вычислений по цветным и бесцветным ячейкам.

Как получить цвет фона из условного форматирования в Excel с помощью VBA - CodeRoad
Потому что это максимально возможное количество строк объекта Worksheet. Если вы записываете больше строк, чем 65536, то помещайте их на следующий лист книги — благо, что количество листов ограничено только оперативной памятью комьютера.
специалист
Мнение эксперта
Витальева Анжела, консультант по работе с офисными программами
Со всеми вопросами обращайтесь ко мне!
Задать вопрос эксперту
Какую формулу мне нужно было бы написать, если бы я хотел, чтобы excel сообщал следующее количество красных клеток в диапазоне H2 H30 и ответ, который должен быть возвращен в ячейку B36. Если же вам нужны дополнительные объяснения, обращайтесь ко мне!
Мы также можем изменить границы ячейки с помощью VBA Границы вокруг метод. Как только диапазон ячеек или ячеек указан, нам нужно получить доступ к VBA Границы вокруг метод.

Как суммировать ячейки по цвету в excel

Excel по-разному обрабатывает два типа цветного фона ячеек: заливка сплошным цветом, заданная пользователем (когда вы сами назначаете цвет) и условный цвет (при применении условного форматирования). Условное форматирование может применятся как к шрифту, так и к фону фчейки. С надстройкой вы можете агрегировать значения по любому типу условного цвета.

Количество и сумма ячеек по цвету в Excel

Разберем простые способы как посчитать количество, и как суммировать ячейки по цвету в Excel.

Приветствую всех, дорогие читатели блога TutorExcel.Ru.

Мы часто при работе в Excel окрашиваем ячейки различными цветами для лучшей визуализации данных.

Однако, когда возникает необходимость произвести какие-либо расчеты с обработанными данными мы сталкиваемся с трудностями в связи с малыми возможностями стандартных средств Excel.

Если сделать сортировку и фильтр ячеек по цвету мы стандартными способами Excel можем, то вот посчитать сумму или количество пока еще нет.

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

Суммирование ячеек по цвету

Создаем новый модуль и добавляем в него следующий код функции для суммы (напротив каждой строчки дается пояснение к коду):

специалист
Мнение эксперта
Витальева Анжела, консультант по работе с офисными программами
Со всеми вопросами обращайтесь ко мне!
Задать вопрос эксперту
Из следующего выпадающего списка выберите Вычислять по цвету Фона или Шрифта , в зависимости от типа условного форматирования. Если же вам нужны дополнительные объяснения, обращайтесь ко мне!
Внимание: надстройка автоматически распознает и произведет расчёт по всем цветам в диапазоне. Ячейки без фона, без заливки и ячейки с белой заливкой обрабатываются вместе. Так, вы сможете сравнить результаты вычислений по цветным и бесцветным ячейкам.
Границы VBA, пример 1-2

Vba Excel Определить Цвет Заливки Ячейки

  • Сделайте активной ячейку В7 (это важно, т.к. мы будем использовать относительную адресацию в формуле)
  • В Диспетчере имен введите формулу =ПОЛУЧИТЬ.ЯЧЕЙКУ(63;Макрофункция!A7)
  • Назовите ее Цвет

Начиная с Excel 2007 основным способом заливки диапазона или отдельной ячейки цветом (зарисовки, добавления, изменения фона) является использование свойства.Interior.Color объекта Range путем присваивания ему значения цвета в виде десятичного числа от 0 до 16777215 (всего 16777216 цветов).

Примеры кода

Скачать

Перебор ячеек в диапазоне (вариант 1)

Количество ячеек в диапазоне получено при помощи свойства .Count . Как .Item , так и .Count — это всё атрибуты коллекций, которые широко применяются в объектой модели MS Office и, в частности, Excel.

Перебор ячеек в диапазоне (вариант 3)

Если необходимо перебирать ячейки в порядке A1, A2, A3, B1, . а не A1, B1, C1, A2, . то вы можете это организовать при помощи 2-х циклов For . Обратите внимание, как мы узнали количество столбцов ( parRange.Columns.Count ) и строк ( parRange.Rows.Count ) в диапазоне, а также на использование свойства Cells . Тут Cells относится к листу и никак не связано с диапазоном parRange .

Перебор строк диапазона

В цикле For each. Next перебираем коллекцию Rows объекта parRange . Для каждой строки формируем цвет на основе первых трёх ячеек каждой строки. Поскульку у нас в ячейках формула, присваивающая ячейке случайное число от 1 до 255, то цвета получаются всегда разные. Оператор With позволяет нам сократить код и, к примеру, вместо Line.Cells(2) написать просто .Cells(2) .

Перебор столбцов

Перебираем коллекцию Columns . Тоже используем оператор With . В последней ячейке каждого столбца у нас хранится размер шрифта для всей колонки, который мы и применяем к свойству Line.Font.Size .

Перебор областей диапазона

специалист
Мнение эксперта
Витальева Анжела, консультант по работе с офисными программами
Со всеми вопросами обращайтесь ко мне!
Задать вопрос эксперту
Excel по-разному обрабатывает два типа цветного фона ячеек заливка сплошным цветом, заданная пользователем когда вы сами назначаете цвет и условный цвет при применении условного форматирования. Если же вам нужны дополнительные объяснения, обращайтесь ко мне!
Обратите внимание, что свойство DisplayFormat не работает в пользовательских функциях. Например, в функции рабочего листа, которая возвращает внутренний цвет ячейки, если вы используете строку, похожую на:

Суммирование ячеек по цвету

Как известно, метод AutoFit для подбора высоты объединенных ячеек не срабатывает. Для этого был придуман простой метод (взят отсюда и просто адаптирован под Delphi). Работает для объеденных ячеек в одной строке. Просто укажите одну из объединенных ячеек области (свойство WrapText должно быть включено).

Синтаксическая форма Комментарии по использованию
Range ( «A1:B4 «) или [ A1:B4 ] Диапазон ячеек A1:B4 текущего листа. Обратите внимание, что указываются координаты верхнего левого и правого нижнего углов диапазона. Причём первый указываемый угол вполне может быть правым нижним, это не имеет значения.
Range(Cells(1, 1), Cells(4, 2)) Диапазон ячеек A1:B4 текущего листа. Удобно, когда вы знаете именно цифровые координаты углов диапазона.
Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: