Скрипт Google, который запускает копирование диапазона в другую таблицу - НЕ РАБОТАЕТ для меня - PullRequest
0 голосов
/ 22 февраля 2019

У меня проблема со скриптом Google Apps, который должен вызвать копирование диапазона в другую электронную таблицу Google.Странно то, что скрипт отлично работает, если его запустить через редактор скриптов.Но он не работает через триггер (onEdit).

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

Пожалуйста, смотрите ниже простое представление моего сценария:

   function onEdit(e){

   var sourceFile1 = SpreadsheetApp.getActiveSpreadsheet();
   var sheet = sourceFile1.getActiveSheet();
   var selectedRange = sheet.getRange(44,1, 1, 29);
   var sourceData = selectedRange.getValues();       
   var destinationFile = SpreadsheetApp.openById("    ");
   var destinationSheet = destinationFile.getSheetByName("Orders");
   var lastRow = destinationSheet.getLastRow();
   lastRow = lastRow + 1;
   destinationSheet.getRange(lastRow, 1, 1, 29).setValues(sourceData);
   }

1 Ответ

0 голосов
/ 23 февраля 2019
  • В вашем скрипте, когда вы запускаете onEdit() с помощью редактора скриптов, он работает.
  • Но когда функция запускается как триггер OnEdit, она не работает.
  • В этой ситуации вы являетесь владельцем таблицы и сценария.

Если мое понимание верно, как насчет этого ответа?

Я думаю, что в вашем сценарии, когдаСобытие OnEdit запускается, ошибка, связанная с авторизацией, возникает в var destinationFile = SpreadsheetApp.openById(" ");.Если вы хотите это подтвердить, проверьте протокол выполнения редактора сценариев после запуска функции в качестве триггера OnEdit.

Итак, как решение, как насчет установки функции в качестве устанавливаемых триггеров?

Примечание:

  • В вашем случае, поскольку возникает ошибка авторизации, вы можете установить имя функции onEdit() в качестве устанавливаемых Триггеров.Но я рекомендую изменить имя функции с onEdit() на другое.Например, это похоже на installed_onEdit().
    • Поскольку функция имени функции onEdit() запускается как простой триггер, когда onEdit() устанавливается как устанавливаемые триггеры, onEdit() запускается 2 раза как простой триггер и устанавливаемые триггеры.

Ссылки:

Если я неправильно понял ваш вопрос, и это не было решением вашей проблемы, я прошу прощения.

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