#google-apps-script #google-sheets #scripting #timestamp-with-timezone
#google-apps-script #google-таблицы #создание сценариев #временная метка с часовым поясом
Вопрос:
-Необходимо создавать временную метку каждый день в 6 часов, проверяя, был ли обновлен определенный столбец. У меня запущен триггер времени, я получаю электронные письма, которые он пытался запустить, но «функция сценария не найдена: myFunction».
-
Я знаю, что мне нужно создать ‘myFunction’, но должен ли я просто использовать onEdit? Я не уверен, как заставить его работать, поэтому каждый день в 13:00 он проверяет определенный столбец на предмет редактирования, а затем выдает временную метку в другом столбце, если она была отредактирована.
-
Я несколько раз пытался выяснить, как отсортировать активный диапазон, но я не знаю, просто ли триггер запускает «myFunction» в указанное время, и если мне просто нужно написать код, то укажите триггер на него.
function createTimeDrivenTriggers() {
ScriptApp.newTrigger('myFunction')
.timeBased()
.everyDays(1)
.atHour(13)
.create();
var timeZone = Session.getScriptTimeZone();
var timestamp_format = "mm/dd/yyyy";
var updateColName = "Updated";
var timeStampColName = "Timestamp";
var ss = SpreadsheetApp.getActiveSpreadsheet();
Ответ №1:
Не используйте onEdit
. Это означает «запускайте каждый раз, когда кто-то редактирует этот лист».
Да, сначала вы должны написать myFunction
. Запустите его и отладьте вручную, прежде чем присоединять к нему триггер.
Не прикрепляйте триггер с помощью ScriptApp
. Нажмите на кнопку запуска в редакторе сценариев, которая приведет вас к script.google.com панель инструментов, где вы можете использовать мастер настройки триггера, чтобы правильно настроить триггер для запуска «myFunction» между 1 и 2 часами дня.
Комментарии:
1. Понял. Есть ли причина не использовать часть скрипта для создания триггера? Мне любопытно, почему у меня было так много проблем.
2. Создание триггера по сценарию хорошо, если вы все проработали и хотите, чтобы скрипт инициализировался сам или устанавливал триггеры на основе условий и т.д. Пока вы все еще разбираетесь во всем этом, проще просто управлять триггерами вручную. Исходя из вашей информации, вам пока не выгодно устанавливать триггер по сценарию.
3. Я просто продолжаю получать неопределенные значения после попытки получить активную электронную таблицу, и я понятия не имею, как вообще прикрепить триггер к этому фрагменту кода. Как мне определить источник, когда он фактически не открыт, и как я могу заставить его использовать активный диапазон?
4. Чтобы получить лучшую справку, вам следует отредактировать свой вопрос выше. Вы должны показать
myFunction
. Я рекомендую, чтобы онmyFunction
работал идеально, запускался вручную, прежде чем беспокоиться о подключении триггера. На панели инструментов редактора сценариев появится значок часов, когда вы будете готовы создать триггер. Но сделайте это после того, как у вас естьmyFunction
.