Как обработать только видимые на листе строки?
Скрипт ниже получает массив данных, соответствующий области выделения.
- Ожидаемый результат: selected_rows = 6.
- Полученный результат: selected_rows = 200.
То есть метод getRange получает данные из области выделения, не учитывая результаты фильтрации.
Как обработать только видимые на листе строки?
![]()
![]()
Ну правильно, вы же руками строите range от первого выбранного до последнего выбранного, поэтому и выдает 200. Чтобы получить интересующий range, нужно взять пересечение созданного array с имеющимся selection . В Excel VBA есть метод Intersect(range,range. ), в гугл-таблицах не нашел, но должен быть (нашел вот такой запрос, там упоминается, что есть rangeset, который умеет хотя бы с одним range пересечение делать — его можно попробовать применить). То есть если selection на самом деле является RangeSet, можно вызвать так:
![]()
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.3.11.43304
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Как выделить видимые ячейки в гугл таблицах
Один из лучших способов повысить эффективность работы с Google таблицами — изучить несколько основных сочетаний клавиш для быстрого выбора данных.
Еще со времен Excel я помню, как мне было сначала некомфортно, когда я пытался запомнить эти сочетания, и как изначально все было намного медленнее, чем просто выделить данные мышкой. Но через несколько дней, когда комбинации клавиш стали привычными, это стало делать значительно быстрее, чем с помощью мыши. Аналогично и для Google таблиц — одно сочетание Ctrl + \ чего стоит. И как мне до сих пор тяжело без него в экселе на рабочем компьютере
Сейчас же сочетания клавиш позволяют мне выбирать данные , не отрывая рук от клавиатуры, что намного быстрее, чем хватать мышь.
Как автоматически выделить текущую строку в Google таблице?

К сожалению, в Google Sheets нет возможности за несколько кликов, либо простой формулой автоматически подсвечивать цветом текущую строку, в которой выделена любая ячейка.
Нам потребуется симбиоз функций условного форматирования и работы легкого скрипта Apps Script.
Встроенные функции Google таблицы
Когда гугл таблица наполняется данными и полная структура выходит за рамки видимого экрана на мониторе, будь-то вниз или вправо, то, помимо закрепления строк и столбцов — нам, для удобства, нужно выделять какие-то конкретные строки или столбцы с данными: для этого подойдет комбинация
Причем, текущая строка выделится по предпоследнюю пустую ячейку в ней, а столбец выделится полностью весь.


Автоматическая заливка текущей строки по выделенной ячейке Google таблицы
Настройка легкого скрипта в Apps Script в Google Sheets
В меню гугл таблиц следуем в Расширения > Apps Script

В тело нового скрипта прописываем следующий код:
Где параметр setBackgroundRGB(0,80,255) — это задаваемый цвет, который будет подсвечивать активную строку.

Пример интерфейса из обновленного редактора скриптов Apps Script, так как старый (классический) редактор скоро перестанет поддерживаться.
В итоге получаем конструкцию, которая автоматически заливает всю текущую строку по выделенной ячейке:
Статьи по теме

Предельные ограничения значений в Google таблицах
- 03.02.2023
- Автор статьи: Александр Солунин
- 0 comments

Как скопировать формулу в Google таблицах на весь столбец?
- 31.01.2023
- Автор статьи: Александр Солунин
- 0 comments

Как сделать отступы в ячейках с текстом в Google таблицах?
- 23.12.2022
- Автор статьи: Александр Солунин
- 0 comments

Как объединить или разъединить ячейки в Google таблицах?
- 12.01.2023
- Автор статьи: Александр Солунин
- 0 comments

Как защитить ячейку, диапазон или лист в google таблицах?
- 16.11.2022
- Автор статьи: Александр Солунин
- 0 comments

Как подчеркнуть текст в google таблицах?
- 12.11.2022
- Автор статьи: Александр Солунин
- 0 comments

Как сделать текст с правильным регистром в google таблицах?
- 03.02.2023
- Автор статьи: Александр Солунин
- 0 comments

Как вытащить часть текста из ячейки в google таблицах?
- 18.12.2022
- Автор статьи: Александр Солунин
- 0 comments

Как преобразовать дату в Unix timestamp в google таблицах
- 03.02.2023
- Автор статьи: Александр Солунин
- 0 comments

Как закрасить строку по условию другой ячейки Google таблицы?
- 12.03.2023
- Автор статьи: Александр Солунин
- 0 comments

Как подсветить Мин и Макс значения цветом в Google таблицах?
- 07.11.2022
- Автор статьи: Александр Солунин
- 0 comments

Как сделать Столбчатую диаграмму в Google таблицах?
- 11.04.2022
- Автор статьи: Александр Солунин
Комментарии к статье: “ Как автоматически выделить текущую строку в Google таблице? ”
Добрый день.
Делал точь в точь как описано. НЕ РАБОТАЕТ. Как будто вообще ничего не делал. Возможно для случая закраски строки по выделенной ячейке в описании ошибка. Либо отсутствуют важные детали.
Добрый день.
Возможно, Вы неверно указали диапазон при настройке Условного форматирования.
Еще момент: ячейка А1 — должна быть пустой на всех листах.
С указанием диапазона всё в порядке. А вот, то что А1 должна быть пустой на всех листах, об этом не подумал. В документе есть листы с занятой А1.
Стало быть, надо в скрипте: либо указать на пустую ячейку во всех листах, либо обращение к конкретному листу (по имени). Так?
Практического опыта не имею, пока только теория. Но необходимость возникла.
Действительно, google таблицы отключили один из методов, но я обновил скрипт и теперь все работает.
Тогда п.2. в описании (условное форматирование) отпадает. Остаётся только App Script.
Да. И пример интерфейса из обновленного редактора скриптов Apps Script в описании тоже остался старый.
Своего рода «костыль» решения данной потребности: через «маяк»-ячейку, в которую мы будем помещать данные выделенной ячейки в гугл таблице состоит из двух этапов:
1. Настройка Apps Script
2. Настройка условного форматирования
Вот эта часть в описании, разве ещё актуальна? Если условное форматирование больше не применяется, то зачем этот текст? Только с толку сбивает.
А скрипт всё равно НЕ работает. Только вручную по кнопке «Выполнить» в интерфейсе Apps Script срабатывает. И ВСЁ.
Кроме того. Выполнение скрипта обнуляет закраску других строк в таблице. Например, последних с промежуточными и общим итогами (в моём случае).
В остальном — сбросьте кеш, возможно, старая информация в него попала.
Да, извиняюсь. Работает. Сделал выход и вход — заработало.
Остаётся разобраться, как не трогать (пропускать) нужные строки (в моём примере три последние с 13-й по 15-ю).
Как не закрашивать их, разобрался. А вот, как не сбрасывать в них ранее заданный фон, пока не могу понять.
Поможете?
https://docs.google.com/spreadsheets/d/1cjd-aGAeLCBgr_vOmX8KFLv0n6_zPhlUlwGTu31GiII/edit?usp=sharing
Тут только смотреть методы.
Мой метод работает так: берет активную ячейку > выбирает всю строку, в которой активная ячейка > закрашивает цветом > если цикл повторяется — то удалять условное форматирование и повторять все с активной ячейкой.
Раньше метод был проще, сейчас, зачем-то, google таблицы изменили подход и значительно усложнили процедуру определения координат активной ячейки, отсюда скрипт «думает» до 1 секунды — что меня расстраивает.
Если найдете решение, сообщите пожалуйста.
В моём случае, оказалось, проще сделать по старой методике: Apps Script + Условное форматирование.
1. Обновлённый Ваш скрипт с добавленными условиями не закрашивать последние строки.
+
2. Условное форматирование для последних строк. Должны быть не пустые (условие — содержит данные).
Как выделить строку в Google Таблицах с помощью условного форматирования

Если вам нужно изолировать данные в Google Таблицах на основе определенных критериев в ячейке, вы можете использовать условное форматирование, чтобы выделить целые строки в своей электронной таблице. Вот как это сделать.
Запустите браузер, перейдите в Google Таблицы, и откройте электронную таблицу с таблицей данных, к которой вы хотите применить условное форматирование, чтобы выделить определенные строки.
Выделите все ячейки внутри таблицы, а затем нажмите «Формат»> «Условное форматирование» на панели инструментов.
На панели, которая открывается справа, щелкните раскрывающееся меню в разделе «Форматировать ячейки, если» и выберите «Пользовательская формула».

В появившемся текстовом поле «Значение или формула» введите формулу, чтобы выделить конкретные данные, которые вы хотите выделить в этой таблице. Для нашей таблицы мы будем использовать формулу, которая выделяет всю строку, если год выпуска до 1980 года. Это выглядит так: = $ D3

Первая часть формулы (= $ D3) сообщает Sheets, что мы хотим начать анализ данных из ячейки D3. Знак доллара в начале является обязательным и говорит о том, что столбец (D) фиксированный, но строка (3) является гибкой. Это позволяет формуле проверять данные во всем столбце.
Примечание. Если вы хотите, чтобы ваш результат включал введенную дату, введите
Затем выберите тип форматирования, который вы хотите применить при соблюдении условий. К результатам можно применить полужирный шрифт, курсив, подчеркивание, зачеркивание, цвет шрифта или цвет ячейки. По умолчанию каждая строка заполняется светло-зеленым цветом.
После того, как вы выберете способ отображения строк при обнаружении совпадения в формуле, нажмите «Готово». Вы можете закрыть панель или создать другое правило для применения условного форматирования.

И точно так же зелёным выделены ряды фильмов, выпущенных до 1980 года.

Хотя это простой пример формулы, нет никаких ограничений в том, как вы можете использовать этот чрезвычайно полезный инструмент. Вы даже можете использовать расширенные формулы и функции для сопоставления данных в таблице.
Например, если мы хотим найти каждого директора с именем «Джордж», мы можем использовать для этого функцию REGEXMATCH и короткое регулярное выражение. Это будет выглядеть примерно так: = REGEXMATCH ($ C3, «AGeorges * ([^nr]*) »)

Это оно! Используя условное форматирование в Google Таблицах, вы искали определенные столбцы данных, а затем выделили всю строку с помощью настраиваемой формулы.
Это идеальный инструмент для создания сложных электронных таблиц с красиво отформатированными данными, привлекающими всеобщее внимание.