Красивые Диаграммы и Графики

Как автоматически выделить текущую строку в Google таблице?

Как автоматически выделить текущую строку в Google таблице?

К сожалению, в 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, так как старый (классический) редактор скоро перестанет поддерживаться.

В итоге получаем конструкцию, которая автоматически заливает всю текущую строку по выделенной ячейке:

Статьи по теме

Комментарии к статье: “Как автоматически выделить текущую строку в Google таблице?

  1. Дмитрий:

    Добрый день.
    Делал точь в точь как описано. НЕ РАБОТАЕТ. Как будто вообще ничего не делал. Возможно для случая закраски строки по выделенной ячейке в описании ошибка. Либо отсутствуют важные детали.

    1. Добрый день.
      Возможно, Вы неверно указали диапазон при настройке Условного форматирования.

      Еще момент: ячейка А1 — должна быть пустой на всех листах.

      1. Дмитрий:

        С указанием диапазона всё в порядке. А вот, то что А1 должна быть пустой на всех листах, об этом не подумал. В документе есть листы с занятой А1.
        Стало быть, надо в скрипте: либо указать на пустую ячейку во всех листах, либо обращение к конкретному листу (по имени). Так?
        Практического опыта не имею, пока только теория. Но необходимость возникла.

        1. Действительно, google таблицы отключили один из методов, но я обновил скрипт и теперь все работает.

          1. Дмитрий:

            Тогда п.2. в описании (условное форматирование) отпадает. Остаётся только App Script.
            Да. И пример интерфейса из обновленного редактора скриптов Apps Script в описании тоже остался старый.

  2. Дмитрий:

    Своего рода «костыль» решения данной потребности: через «маяк»-ячейку, в которую мы будем помещать данные выделенной ячейки в гугл таблице состоит из двух этапов:
    1. Настройка Apps Script
    2. Настройка условного форматирования

    Вот эта часть в описании, разве ещё актуальна? Если условное форматирование больше не применяется, то зачем этот текст? Только с толку сбивает.
    А скрипт всё равно НЕ работает. Только вручную по кнопке «Выполнить» в интерфейсе Apps Script срабатывает. И ВСЁ.

    1. Дмитрий:

      Кроме того. Выполнение скрипта обнуляет закраску других строк в таблице. Например, последних с промежуточными и общим итогами (в моём случае).

    2. https://docs.google.com/spreadsheets/d/1Do8rIroAH-QENxWRm6x-DQuOknXSjQQRPEEQ0Ik5nu0/edit#gid=0
      Я и на почту данный файл присылал — и тут закреплю.
      Все работает.

      В остальном — сбросьте кеш, возможно, старая информация в него попала.

      1. Дмитрий:

        Да, извиняюсь. Работает. Сделал выход и вход — заработало.
        Остаётся разобраться, как не трогать (пропускать) нужные строки (в моём примере три последние с 13-й по 15-ю).
        Как не закрашивать их, разобрался. А вот, как не сбрасывать в них ранее заданный фон, пока не могу понять.
        Поможете?
        https://docs.google.com/spreadsheets/d/1cjd-aGAeLCBgr_vOmX8KFLv0n6_zPhlUlwGTu31GiII/edit?usp=sharing

        1. Тут только смотреть методы.
          Мой метод работает так: берет активную ячейку > выбирает всю строку, в которой активная ячейка > закрашивает цветом > если цикл повторяется — то удалять условное форматирование и повторять все с активной ячейкой.

          Раньше метод был проще, сейчас, зачем-то, google таблицы изменили подход и значительно усложнили процедуру определения координат активной ячейки, отсюда скрипт «думает» до 1 секунды — что меня расстраивает.

          Если найдете решение, сообщите пожалуйста.

  3. Дмитрий:

    В моём случае, оказалось, проще сделать по старой методике: Apps Script + Условное форматирование.
    1. Обновлённый Ваш скрипт с добавленными условиями не закрашивать последние строки.
    +
    2. Условное форматирование для последних строк. Должны быть не пустые (условие — содержит данные).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *