Как исправить функцию, чтобы получить цвет текста ячейки - PullRequest
2 голосов
/ 17 июня 2019

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

Шаги:

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(). Может кто-то помочьмне, пожалуйста?

1 Ответ

1 голос
/ 18 июня 2019

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

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

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

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

...