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

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

Я знаю, что мне нужно использовать SpreadsheetApp.openById ("insertID"), а не SpreadsheetApp.getActiveSpreadsheet (), но я могу ' Кажется, он работает.

Вот мой код, который работает на основе перемещения листа на лист, как мне изменить его, чтобы перейти к новой электронной таблице?

function onEdit(event) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = event.source.getActiveSheet();
  var r = event.source.getActiveRange();

  if(s.getName() == "Timeline Submit" && r.getColumn() == 117 && r.getValue() == true) {
    var row = r.getRow();
    var numColumns = s.getLastColumn();
    var targetSheet = ss.getSheetByName("WIP");
    var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    s.getRange(row, 1, 1, numColumns).copyTo(target, {contentsOnly:true});
      } else if(s.getName() == "WIP" && r.getColumn() == 117 && r.getValue() == false) {
    var row = r.getRow();
        var numColumns = s.getColumn();
    var targetSheet = ss.getSheetByName("Timeline Submit");
    var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    s.getRange(row, 1, 1, numColumns).copyTo(target, {contentsOnly:true});
      }
}

1 Ответ

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

Я не мог понять все во втором разделе вашего кода, но в нем было слишком много ошибок, поэтому я только угадал и некоторые из них.

Не забудьте go создать триггер для это в редакторе сценариев редактирует / запускает текущий проект.

function installableOnEdit(e) {
  var sh=e.range.getSheet();
  if(sh.getName()=="Timeline Submit" && e.range.columnStart==117 && e.value==true) {
    var ss=SpreadsheetApp.openById('id')
    var tsh= ss.getSheetByName("WIP");
    var trg=tsh.getRange(tsh.getLastRow()+1,1);
    sh.getRange(e.range.rowStart,1,1,sh.getLastColumn()).copyTo(trg,{contentsOnly:true})
  }else if(sh.getName()=="WIP" && e.range.columnStart==17 && e.value==false) {
    var ss=SpreadsheetApp.openById('id')
    var tsh=ss.getSheetByName('Timeline Submit');
    var trg=sh.getRange(tsh.getLastRow()+1,1);
    sh.getRange(e.range.rowStart,1,1,sh.getLastColumn()).copyTo(trg,{contentsOnly:true});
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...