Определить код цвета ячейки в excel

Надстройка PLEX для Microsoft Excel 2007-2021 и Office 365

Функция CellColor

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

Определение кода цвета ячейки с помощью функции CellColor

Синтаксис

=CellColor(cell)

где

  • cell — ячейка, для которой нужно определить код цвета заливки

Примечания

К сожалению, поскольку Excel формально не считает смену цвета  изменением содержимого листа, то эта функция не будет пересчитываться автоматически при изменении форматирования — обновление значений этой функции происходит только при нажатии сочетания клавиш полного пересчета листа Ctrl+Alt+F9.

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

Если для ячейки не установлен цвет заливки, то код = -4142.

Если нужен RGB-код цвета, то используйте функцию RGBCellColor.

Если нужен код цвета не заливки, а шрифта, то используйте функцию CellFontColor.

Полный список всех инструментов надстройки PLEX

Here are some small functions for you. From your sheet, press AltF11 to reach the VBA editor, insert a new module, paste the below code, go back to your worksheet and use them by their names, like in =FillColor(A1)

The first two are the promised «3-liners» giving decimal values for font and background colors — not very useful though

The second pair converts the decimal number to RGB and returns a string of format N, N, N

The third pair are array formulas — select 3 cells in a row, enter the formula and press Ctrl+Shift+Enter to obtain numeric RGB values in 3 neighboring cells

Function FillColor(Target As Range) As Variant
    FillColor = Target.Interior.Color
End Function

Function FontColor(Target As Range) As Variant
    FontColor = Target.Font.Color
End Function

Function FillColorRGB(Target As Range) As Variant
Dim N As Double

    N = Target.Interior.Color
    FillColorRGB = Str(N Mod 256) & ", " & Str(Int(N / 256) Mod 256) & ", " & Str(Int(N / 256 / 256) Mod 256)
End Function

Function FontColorRGB(Target As Range) As Variant
Dim N As Double

    N = Target.Font.Color
    FontColorRGB = Str(N Mod 256) & ", " & Str(Int(N / 256) Mod 256) & ", " & Str(Int(N / 256 / 256) Mod 256)
End Function

Function FillColorRGBArray(Target As Range) As Variant
Dim N As Double, A(3) As Integer

    N = Target.Interior.Color
    A(0) = N Mod 256
    A(1) = Int(N / 256) Mod 256
    A(2) = Int(N / 256 / 256) Mod 256
    FillColorRGBArray = A
End Function

Function FontColorRGBArray(Target As Range) As Variant
Dim N As Double, A(3) As Integer

    N = Target.Font.Color
    A(0) = N Mod 256
    A(1) = Int(N / 256) Mod 256
    A(2) = Int(N / 256 / 256) Mod 256
    FontColorRGBArray = A
End Function

A word of caution: changing the color of a cell does not start recalculation by the above functions/formulas, as recoloring a cell in general is not supposed to drive recalculation. You have to manually start a full recalculation using Ctrl+Alt+Shift+F9

Цвет заливки ячейки

Jowls

Дата: Понедельник, 14.11.2022, 17:26 |
Сообщение № 1

Группа: Пользователи

Ранг: Новичок

Сообщений: 11

Добрый день,
Подскажите, пожалуйста, как узнать цифровой код цвета заливки ячейки?

Заранее благодарю.

 

Ответить

Serge_007

Дата: Понедельник, 14.11.2022, 17:35 |
Сообщение № 2

Группа: Админы

Ранг: Местный житель

Сообщений: 15894


Репутация:

2623

±

Замечаний:
±


Excel 2016

Здравствуйте

Пользовательской функцией:[vba]

Код

Function CellColour(RCell As Range) As Double
    CellColour = RCell.Interior.Color
End Function

[/vba]


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

Gustav

Дата: Понедельник, 14.11.2022, 17:51 |
Сообщение № 3

Группа: Друзья

Ранг: Старожил

Сообщений: 2398


Репутация:

986

±

Замечаний:
0% ±


начинал с Excel 4.0, видел 2.1

До кучи — цвет в виде вызова функции RGB с соответствующими параметрами-цветами:
[vba]

Код

Function CellRGB(RCell As Range) As String
    Dim color As Long
    color = RCell.Interior.color
    CellRGB = «RGB(» & (color Mod 256) & «, » & ((color 256) Mod 256) & «, » & (color 65536) & «)»
End Function

[/vba]


МОИ: Ник, Tip box: 41001663842605

 

Ответить

Jowls

Дата: Вторник, 15.11.2022, 10:33 |
Сообщение № 4

Группа: Пользователи

Ранг: Новичок

Сообщений: 11

Коллеги, всем спасибо.

Но у меня, при использовании варианта:[vba]

Код

Function CellColour(RCell As Range) As Double
CellColour = RCell.Interior.Color
End Function

[/vba]Выдает синтаксическую ошибку (файл в приложении)
Никак не пойму, в чем дело.

К сообщению приложен файл:

8911575.xlsm
(15.4 Kb)

Сообщение отредактировал Serge_007Вторник, 15.11.2022, 12:44

 

Ответить

Nic70y

Дата: Вторник, 15.11.2022, 11:29 |
Сообщение № 5

Группа: Друзья

Ранг: Экселист

Сообщений: 8136


Репутация:

1999

±

Замечаний:
0% ±


Excel 2010

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


ЮMoney 41001841029809

 

Ответить

Jowls

Дата: Вторник, 15.11.2022, 11:48 |
Сообщение № 6

Группа: Пользователи

Ранг: Новичок

Сообщений: 11

Nic70y,

О, спасибо огромное!!!
Помогло!

 

Ответить

Когда вы получаете лист с несколькими цветными ячейками, как показано на скриншоте ниже, в некоторых случаях вам может потребоваться определить индекс цвета фона этих цветных ячеек. Нет встроенной функции, которая может определить индекс цвета ячейки, но в этой статье я представлю некоторые коды VBA для быстрого решения этой задачи в Excel.
док определить индекс цвета 1

Определите цвет ячейки с помощью VBA


Определите цвет ячейки с помощью VBA

Выполните следующие шаги, чтобы определить цвет ячейки с помощью VBA.

1. Нажмите Alt + F11 ключи для включения Microsoft Visual Basic для приложений окно.
док определить индекс цвета 2

2. Нажмите Вставить > Модули открыть новый Модули и вставьте ниже код VBA в пустой скрипт. Смотрите скриншот:

VBA: получить традиционный шестнадцатеричный код ячейки

Function getRGB1(FCell As Range) As String
'UpdatebyExtendoffice20170714
    Dim xColor As String
    xColor = CStr(FCell.Interior.Color)
    xColor = Right("000000" & Hex(xColor), 6)
    getRGB1 = Right(xColor, 2) & Mid(xColor, 3, 2) & Left(xColor, 2)
End Function

3. Сохраните код и закройте окно VBA. Выберите пустую ячейку рядом с цветной ячейкой, введите эту формулу, = getRGB1 (A16), затем перетащите маркер автозаполнения на ячейки, которые вы хотите использовать. Смотрите скриншот:

Наконечник: Есть еще несколько кодов, которые могут определить цветовой индекс ячейки.

1. VBA: десятичное значение для каждого кода

Function getRGB2(FCell As Range) As String
   'UpdatebyExtendoffice20170714  
    Dim xColor As Long
    Dim R As Long, G As Long, B As Long
    xColor = FCell.Interior.Color
    R = xColor Mod 256
    G = (xColor  256) Mod 256
    B = (xColor  65536) Mod 256
    getRGB2 = "R=" & R & ", G=" & G & ", B=" & B
End Function

Результат:
док определить индекс цвета 7

2. VBA: десятичные значения

Function getRGB3(FCell As Range, Optional Opt As Integer = 0) As Long
 'UpdatebyExtendoffice20170714
    Dim xColor As Long
    Dim R As Long, G As Long, B As Long
    xColor = FCell.Interior.Color
    R = xColor Mod 256
    G = (xColor  256) Mod 256
    B = (xColor  65536) Mod 256
    Select Case Opt
        Case 1
            getRGB3 = R
        Case 2
            getRGB3 = G
        Case 3
            getRGB3 = B
        Case Else
            getRGB3 = xColor
    End Select
End Function

Результат:
док определить индекс цвета 8



Относительные статьи:

  • Как изменить цвет шрифта в зависимости от значения ячейки в Excel?
  • Как раскрасить повторяющиеся значения или повторяющиеся строки в Excel?

Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Комментарии (3)


Оценок пока нет. Оцените первым!

MulTEx »

1 Май 2011              16651 просмотров

Данная функция является частью надстройки MulTEx


Получение кода цвета заливки ячейки

Функция возвращает числовой код заливки указанной ячейки. Для чего может пригодиться? Каждый может придумать свое применение. Может быть понадобится суммировать ячейки по цвету по нескольким критериям, для сортировки ячеек по цвету и т.п.

Вызов команды через стандартный диалог:

Мастер функцийКатегория «MulTEx»Цвет_Заливки

Вызов с панели MulTEx:

Сумма/Поиск/ФункцииФорматированиеЦвет_Заливки

Синтаксис:
=Цвет_Заливки(D1)


Ячейка(

D1

) — Ячейка, код цвета заливки которой необходимо узнать. Если указан диапазон ячеек, но функция введена в одну ячейку, то будет возвращен цвет заливки для левой верхней ячейки указанного диапазона.
Функция может быть использована как формула массива

Индекс() — Необязательный аргумент. Определяет тип вывода числового кода. 0 — числовой код цвета из 16-миллионной палитры. 1 — числовой индекс цвета из 56 цветов. По умолчанию 0.

Важно: Функция не вычисляется при изменении цвета шрифта. Для пересчета функции после изменения параметров необходимо выделить ячейку и нажать F2Enter. Либо нажать сочетания клавиш Shift+F9(пересчет функций активного листа) или клавишу F9(пересчет функций всей книги).

Примечание: данная функция не учитывает ячейки, к которым применено Условное Форматирование. Будет определен тот цвет заливки, который установлен стандартными средствами.


Расскажи друзьям, если статья оказалась полезной:

  Плейлист   Видеоинструкции по использованию надстройки MulTEx

Like this post? Please share to your friends:
  • Определить интервал значений excel
  • Определить имя файла word
  • Определить значение функции с использованием excel
  • Определить доли товарных групп в общих продажах за квартал в excel
  • Определить дни недели в excel