У меня есть сводка на листе 2 («Члены»), которая подается из формы на листе 1 («Прием»). После того, как задача была обновлена ​​и завершена, установлено значение «Да» на листе 1, а затем сохранено автоматически на листе 2, я хотел бы запустить сценарий для перемещения строки из «Члены» в «Архив», если установлено значение, обновленное в Приеме для завершения. на Да. На самом деле, чтобы заставить его работать, я помещаю кнопку со сценарием в «члены», и я должен быть помещен в ячейку со значением «Да», чтобы переместить строку в «Архив» ... Я хочу, чтобы это было автоматизировано.

Вы можете помочь мне?

Вот сценарий, который я использую:

// callFunctionB() cause i use onEdit(e) { callFunctionA(e);callFunctionB(e) }

function callFunctionB(e) {

 var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = ss.getActiveSheet();
  var r = s.getActiveRange();
  if(s.getName() == "Members" && r.getColumn() == 11 && r.getValue() == 'Yes') {
    var row = r.getRow();
    var numColumns = s.getLastColumn();
    var targetSheet = ss.getSheetByName("Archive");
    var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    s.getRange(row, 1, 1, numColumns).moveTo(target);
    s.deleteRow(row);
}
-1
Gerard Lamoureux 14 Апр 2020 в 22:24
Рассматривали ли вы какие-либо надстройки, некоторые из них доступны, например: gsuite .google.com/u/0/marketplace/app/flow/909859924833
 – 
Anees Hameed
14 Апр 2020 в 23:46

1 ответ

function callB(e) {
  var s=e.range.getSheet();
  if(s.getName()=="Members" && e.range.columnStart==11 && e.value=='Yes') {
    e.source.getSheetByName("Archive").appendRow(s.getRange(e.range.rowStart,1,1,s.getLastColumn()).getValues()[0]);
    s.deleteRow(e.range.rowStart);
  }
}
1
Cooper 14 Апр 2020 в 23:13
Привет, Купер, я пробовал, но: TypeError: Невозможно прочитать «диапазон» свойства из неопределенного. Ты знаешь почему?
 – 
Gerard Lamoureux
14 Апр 2020 в 23:28
Вы не можете запустить функцию без объекта события onedit. т. е. вы не можете запустить его из редактора скриптов.
 – 
Cooper
15 Апр 2020 в 00:51
Я начинаю с такой функции onEdit: function onEdit(e) { callFunctionA(e) callFunctionB(e) } Но это тоже не работает.
 – 
Gerard Lamoureux
15 Апр 2020 в 15:19