Как исправить функцию получения цвета текста ячейки

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

Шаги:

1. Создайте код:

function getHex(input) {
  return SpreadsheetApp.getActiveSpreadsheet().getRange(input).getFontColor();
};

2. Введите функцию в ячейку M2, например:

=getHex("C2:C10")

3. Диапазон M2: M10 вернет цвет шрифта из C2: C10.

Эта функция работала с .getBackgrounds() (https://www.techjunkie.com/filter-by-color-google-sheets/), но он не работает с .getFontColor(). Может кто-то помочь мне, пожалуйста?


person Bernardo Giarola    schedule 17.06.2019    source источник
comment
Привет, Бернардо, вы пытаетесь просто написать строку шестнадцатеричного цвета ячеек (в этом примере в диапазоне M2: M10). Если вы вызываете getFontColor для диапазона, он вернет цвет только для верхней левой ячейки, вы должны использовать getFontColors, чтобы получить все цвета для диапазона в массиве   -  person AMolina    schedule 17.06.2019
comment
Вы уже просмотрели developers.google.com/apps-script/reference/spreadsheet? / range для метода, который возвращает массив значений вместо одного значения? Также посмотрите developers.google.com/apps-script/guides/sheets/functions..   -  person Rubén    schedule 17.06.2019
comment
Привет, Альберто! Это сработало! Спасибо!   -  person Bernardo Giarola    schedule 17.06.2019


Ответы (1)


Разместите это, чтобы оставить ответ задокументированным.

Если вы вызовете getFontColor() в диапазоне, он вернет цвет только для верхней левой ячейки диапазона (этот метод обычно используется для оценки одной ячейки), вы должны использовать getFontColors(), который возвращает все цвета для диапазона в массиве.

Насколько я могу видеть в документации, доступной на данный момент, многие методы класса Range следуют этому шаблону, есть метод для получения одного значения, а другой - для получения массива тех же значений, то же самое происходит с getBackground() & getBackgrounds(), например, это связано с тем, как диапазоны могут использоваться как для агрегации ячеек, так и для отдельных ячеек. Ниже приведена ссылка на документацию, она должна помочь вам с любыми другими сомнениями.

URL документации: https://developers.google.com/apps-script/reference/spreadsheet/range#getfontcolors.

person AMolina    schedule 18.06.2019
comment
Спасибо, Альберто! Понятно. - person Bernardo Giarola; 19.06.2019
comment
Нет проблем, рад помочь! - person AMolina; 19.06.2019