К сожалению, в Google Sheets нет возможности за несколько кликов, либо простой формулой автоматически подсвечивать цветом текущую строку, в которой выделена любая ячейка.
Нам потребуется симбиоз функций условного форматирования и работы легкого скрипта Apps Script.
Встроенные функции Google таблицы
Когда гугл таблица наполняется данными и полная структура выходит за рамки видимого экрана на мониторе, будь-то вниз или вправо, то, помимо закрепления строк и столбцов — нам, для удобства, нужно выделять какие-то конкретные строки или столбцы с данными: для этого подойдет комбинация
Ctrl/Shift + Пробел (выделить текущий Столбец/Строку)
Причем, текущая строка выделится по предпоследнюю пустую ячейку в ней, а столбец выделится полностью весь.
Автоматическая заливка текущей строки по выделенной ячейке Google таблицы
Настройка легкого скрипта в Apps Script в Google Sheets
В меню гугл таблиц следуем в Расширения > Apps Script
В тело нового скрипта прописываем следующий код:
function onSelectionChange(e) { const sht = SpreadsheetApp.getActive().getActiveSheet(); const rowCount = sht.getActiveRange().getNumRows(); const maxRows = sht.getMaxRows(); const maxColumns = sht.getMaxColumns(); sht.getRange(2, 1, maxRows - 1, maxColumns).setBackground(null); //пропустить первую строку if (rowCount == 1) { const myrow = sht.getActiveRange().getRow(); if (myrow > 1) { //не закрашивать первую строку sht.getRange(myrow, 1, 1, maxColumns).setBackgroundRGB(0,80,255); } } }
Где параметр setBackgroundRGB(0,80,255) — это задаваемый цвет, который будет подсвечивать активную строку.
Пример интерфейса из обновленного редактора скриптов Apps Script, так как старый (классический) редактор скоро перестанет поддерживаться.
В итоге получаем конструкцию, которая автоматически заливает всю текущую строку по выделенной ячейке:
Добрый день.
Делал точь в точь как описано. НЕ РАБОТАЕТ. Как будто вообще ничего не делал. Возможно для случая закраски строки по выделенной ячейке в описании ошибка. Либо отсутствуют важные детали.
Добрый день.
Возможно, Вы неверно указали диапазон при настройке Условного форматирования.
Еще момент: ячейка А1 — должна быть пустой на всех листах.
С указанием диапазона всё в порядке. А вот, то что А1 должна быть пустой на всех листах, об этом не подумал. В документе есть листы с занятой А1.
Стало быть, надо в скрипте: либо указать на пустую ячейку во всех листах, либо обращение к конкретному листу (по имени). Так?
Практического опыта не имею, пока только теория. Но необходимость возникла.
Действительно, google таблицы отключили один из методов, но я обновил скрипт и теперь все работает.
Тогда п.2. в описании (условное форматирование) отпадает. Остаётся только App Script.
Да. И пример интерфейса из обновленного редактора скриптов Apps Script в описании тоже остался старый.
Своего рода «костыль» решения данной потребности: через «маяк»-ячейку, в которую мы будем помещать данные выделенной ячейки в гугл таблице состоит из двух этапов:
1. Настройка Apps Script
2. Настройка условного форматирования
Вот эта часть в описании, разве ещё актуальна? Если условное форматирование больше не применяется, то зачем этот текст? Только с толку сбивает.
А скрипт всё равно НЕ работает. Только вручную по кнопке «Выполнить» в интерфейсе Apps Script срабатывает. И ВСЁ.
Кроме того. Выполнение скрипта обнуляет закраску других строк в таблице. Например, последних с промежуточными и общим итогами (в моём случае).
https://docs.google.com/spreadsheets/d/1Do8rIroAH-QENxWRm6x-DQuOknXSjQQRPEEQ0Ik5nu0/edit#gid=0
Я и на почту данный файл присылал — и тут закреплю.
Все работает.
В остальном — сбросьте кеш, возможно, старая информация в него попала.
Да, извиняюсь. Работает. Сделал выход и вход — заработало.
Остаётся разобраться, как не трогать (пропускать) нужные строки (в моём примере три последние с 13-й по 15-ю).
Как не закрашивать их, разобрался. А вот, как не сбрасывать в них ранее заданный фон, пока не могу понять.
Поможете?
https://docs.google.com/spreadsheets/d/1cjd-aGAeLCBgr_vOmX8KFLv0n6_zPhlUlwGTu31GiII/edit?usp=sharing
Тут только смотреть методы.
Мой метод работает так: берет активную ячейку > выбирает всю строку, в которой активная ячейка > закрашивает цветом > если цикл повторяется — то удалять условное форматирование и повторять все с активной ячейкой.
Раньше метод был проще, сейчас, зачем-то, google таблицы изменили подход и значительно усложнили процедуру определения координат активной ячейки, отсюда скрипт «думает» до 1 секунды — что меня расстраивает.
Если найдете решение, сообщите пожалуйста.
В моём случае, оказалось, проще сделать по старой методике: Apps Script + Условное форматирование.
1. Обновлённый Ваш скрипт с добавленными условиями не закрашивать последние строки.
+
2. Условное форматирование для последних строк. Должны быть не пустые (условие — содержит данные).