Как я могу активировать функцию сценария приложения на листе на основе ввода из другой электронной таблицы - PullRequest
0 голосов
/ 06 января 2020

У меня есть таблицы ниже Основные электронные таблицы дочерних таблиц (около 40)

Я пытаюсь создать функцию, которая может извлекать данные из дочернего листа и загружать их в виде таблицы в Google BigQuery. .

Итак, я пытаюсь написать основную функцию в мастер-листе и собрал все идентификаторы дочерних листов в мастер-листе.

Во всех дочерних листах я создал меню, которое покажет вариант как «загрузить». Каждый раз, когда пользователь нажимает кнопку загрузки, он отправляет соответствующий идентификатор листа на мастер-лист и помещает его в одну из ячеек. Итак, основываясь на листе, URL будет создан в функции мастер-листа и затем он будет запущен.

Теперь проблема в том, что я могу получить идентификатор листа дочернего листа и вставить в мастер-лист, но не удалось активировать функцию в мастер-листе.

Чтобы активировать функцию, я использовал onEdit () в качестве имени функции.

В любом случае, я могу активировать функцию мастер-листа, когда ключ дочернего листа вставлен в мастер-лист.

Примечание. Мне нужна была только одна функция для всех листов. bcoz каждый раз, когда в коде требуются какие-либо изменения, мне не нужно вносить изменения во все листы (около 40)

1 Ответ

0 голосов
/ 06 января 2020

Ответ:

onEdit() триггеры не активируются, если пользователь вручную не отредактирует лист. Вы не можете автоматически запускать сценарий в результате другого сценария, редактирующего мастер-лист.

Обходной путь:

Тем не менее можно создать основанный на времени триггер для запуска каждого минута, которая будет работать на вашем мастер листе. Вы можете запускать это до тех пор, пока вы копируете в мастер-лист с дочерних листов, а затем после завершения удалите триггер.

Вы можете установить устанавливаемый триггер из пользовательского интерфейса скрипта приложений для скрипт, который привязан к вашему Листу, следуя по пути меню Edit > Current project's triggers, а затем нажимая кнопку + Add trigger в правом нижнем углу вновь открытой страницы. Появится всплывающее окно, в котором вы можете настроить триггер со следующими настройками:

  • Выберите, какую функцию запустить: onEdit (или как называется ваша функция)
  • Выберите, какое развертывание должно быть запущено: Head
  • Выберите источник события: Time-driven
  • Выберите тип триггера на основе времени: Minutes timer
  • Выберите минутный интервал: Every minute

Надеюсь, это полезно для вас!

Ссылки:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...