Копировать данные из одной электронной таблицы в другую onchange - PullRequest
0 голосов
/ 24 сентября 2018

Извините меня, поскольку я довольно новичок в этом и, возможно, упускаю что-то простое.

У меня есть электронная таблица, в которой я создаю данные из шаблона, запускаю над ним скрипт для создания форм, которые становятся пользовательскими задачами.URL-адрес редактирования из формы используется для выполнения задачи, и он записывает на основной лист (Sheet2) статус, вложения, штамп данных и адрес электронной почты.После этого я пытаюсь создать список задач, требующих согласований, с моего основного листа на другой лист (LOG) в другой электронной таблице, но у меня возникают проблемы с openByID для моей целевой электронной таблицы.Это говорит, что это не определено.Я могу заставить это работать на листах в той же самой электронной таблице, но я хотел бы, чтобы это было в другой электронной таблице, если это возможно.Все это делается при изменении листа 2, когда состояние меняется на «да» и только для определенных задач (отчет о проверке, служебная записка, отчет о проверке)

function onChange() {
  // moves a row from one sheet to another sheet when a value is entered in a column and another column has specific values
  var columnNumberToWatch = /* column D */ 4; // column A = 1, B = 2, etc.
  var valueToWatch = "yes";
  var sheetNameToMoveTheRowTo = "LOG";

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Sheet2");
  var cell = sheet.getActiveCell();
  var activeRow = cell.getRow();
  var taskCheck=sheet.getRange(activeRow, 2);

  var target = SpreadsheetApp.openByID("my spreadsheet id");
  var targetSheet = target.getSheetByName(sheetNameToMoveTheRowTo);
  var targetRange = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);


  if (sheet.getName() != sheetNameToMoveTheRowTo &&
      cell.getColumn() == columnNumberToWatch &&
      cell.getValue().toLowerCase() == valueToWatch && 
      (taskCheck.getValue() == "Verfication Report" || taskCheck.getValue() == "Maintenance Memo" || taskCheck.getValue() == "Check Report"))
  {
    sheet.getRange(cell.getRow(), 1, 1, sheet.getLastColumn()).copyTo(targetRange);
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...