Есть ли способ активировать и запустить записанный макрос для всех электронных таблиц?
Строго говоря, единственный способ запустить макрос Google Sheets - это пользовательский интерфейс Google Sheets, но макросыкод может выполняться так же, как любой другой код скрипта Google Apps.
Чтобы этот ответ был коротким и полезным, забудьте о запуске функций, сохраненных в каждой электронной таблице, и используйте «основной» проект скрипта Google Apps..
Об этом "главном проекте" в очень широком смысле:
- Получите список электронных таблиц (для этого вы можете воспользоваться службой Google Apps Script Drive).
- Выполните цикл по списку электронных таблиц, чтобы выполнить то, что вам нужно для каждого из них
Существует множество способов получить список электронных таблиц.Вы можете использовать метод поиска, получить электронные таблицы, которые находятся в папке, среди других альтернатив.
Для выполнения цикла наиболее распространенным способом является использование оператора цикла for
, но вы можете использовать другиеоператоры и методы Array, например Array.prototype.forEach
Библиотека помогает избежать копий одного и того же кода в нескольких местах, но вам все равно нужно создать проект скрипта Google Apps и добавить библиотеку в качестве ресурса.
Лучшей альтернативой может быть создание надстройки редактора G Suite, поскольку они устанавливаются один раз и доступны во всех электронных таблицах (или документах, формах, слайдах) для пользователя, который установил надстройку, и для пользователей.электронных таблиц, в которых используется надстройка.
Примечания
Обычно макросы, созданные с помощью устройства записи макросов, работают очень медленно, поскольку обычно включают "активацию" каждый раз, когда лист и диапазонбыла нажата во время записи, в том числе activeSpreadsheet()
, activeSheet()
, которые должны быть заменены.