Страницы: 1
RSS
RGB цвета заливки ячейки по условному форматированию
 
Добрый день. Нужно решить следующую задачу. По цвету заливки ячейки извлекать RGB код вида "255,255,255". Поискал готовое решение в интернете и нашел вот такой вариант:
Код
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

Макрос работает и по команде getRGB2 извлекает код, но только если ячейка была залита вручную. Мне же нужно, чтобы код извлекался даже если ячейка окрашена путем использования условного форматирования. Возможно ли это?
Изменено: vikttur - 06.12.2021 12:28:03
 
montafly, в соседней ветке же есть
Код
FCell.DisplayFormat.Interior.Color

И чего это все полезли в определение цвета ячейки... Интересно, откуда поветрие?
Изменено: tutochkin - 06.12.2021 11:43:59
 
, к сожалению, работает тоже только для ручной заливки. На условное форматирование выдает белый цвет везде.


Я пишу статьи для одного сайта, и там есть проблема с экспортом цветов из экселя на Windows. Почему-то только с Mac при вставке таблицы ячейки сохраняют цвет. С Винды часть кода, отвечающего за цвет, просто пропадает.

Я хочу прописать условия в экселе, чтобы этот код сохранялся, и для этого нужно, чтобы эксель сам понимал какой цвет задан в каждой ячейке.
Изменено: montafly - 06.12.2021 12:04:41
 
Цитата
написал:
И чего это все полезли в определение цвета ячейки... Интересно, откуда поветрие?
К сожалению, этот метод работает тоже только для ручной заливки. На условное форматирование выдает белый цвет везде.


Я пишу статьи для одного сайта, и там есть проблема с экспортом цветов из экселя на Windows. Почему-то только с Mac при вставке таблицы ячейки сохраняют цвет. С Винды часть кода, отвечающего за цвет, просто пропадает.

Я хочу прописать условия в экселе, чтобы этот код сохранялся, и для этого нужно, чтобы эксель сам понимал какой цвет задан в каждой ячейке.
 
Цитата
montafly написал:
К сожалению, этот метод работает тоже только для ручной заливки
Не правда. Соседняя ветка - для условного форматирования работает.
 
Увидел. Но все равно не получается. Без добавки DisplayFormat в макрос работает только на ручную заливку. Если добавлять DisplayFormat (версия после вашей правки) в код, то getRGB1 вообще на любую ячейку выдает ошибку #ЗНАЧ.

Скрытый текст

Версия Excel: LTSC Professional Plus 2021.
 


Собственно всё описано
Изменено: tutochkin - 06.12.2021 12:36:52
 
Понял вас. Это уже что-то, постараюсь адаптировать. Благодарю за помощь.
Изменено: vikttur - 06.12.2021 17:36:44
 
Цитата
montafly написал:
Если добавлять DisplayFormat (версия после вашей правки) в код
Потому что DisplayFormat работает только в Sub. В UDF он не может быть реализован и поэтому ошибка.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1
Наверх