Как остановить код от перемещения двух строк в то время, когда флажок установлен в true? - PullRequest
0 голосов
/ 09 января 2020

Я работаю над таблицей для моего босса и пытаюсь добавить функцию, в которой вся строка перемещается с Листа1 на Лист2, когда установлен флажок в столбце 1. Код, который я использую, работает, за исключением того, что иногда он перемещает две строки одновременно, хотя установлен только один флажок. Вот мой код:

function onEdit(event) {
// assumes source data in sheet named Sheet1
// target sheet of move to named Sheet2 
// test column with yes/no is col 1 or A
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = event.source.getActiveSheet();
var r = event.source.getActiveRange();
if(s.getName() == "Sheet1" && r.getColumn() == 1 && r.getValue() == true) {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("Sheet2");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).moveTo(target);
s.deleteRow(row);
  }
}

Я совсем не знаком с кодом. Я получил это из ответа Джошуа Доана на чей-то вопрос: Google скрипт для перемещения строк в зависимости от флажка - Google лист

Итак, мой вопрос, как мне заставить его перестать двигаться на две строки сразу ??

Спасибо большое!

1 Ответ

1 голос
/ 09 января 2020
function onEdit(e) {
  var sh=e.range.getSheet();
  if(sh.getName()!='Sheet1')return;
  if(e.range.columnStart==1 && e.value=="TRUE") {
    var row1=sh.getRange(e.range.rowStart,1,1,sh.getLastColumn());
    var tsh=e.source.getSheetByName('Sheet2');
    row1.moveTo(tsh.getRange(tsh.getLastRow()+1,1)); 
    sh.deleteRow(e.range.rowStart);
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...