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

У меня есть скрипт, который копирует некоторые данные из одной электронной таблицы в другую, основываясь на "y", помещенном в столбец AK.Копирование самих данных работает просто отлично.

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

  function myFunction(e) {
  var sourceSheetName = "Jims Calendar with Accounting";
  var destinationSpreadsheetId = '1dSJOOw_oLVc6Nf-C0MY9715tZGuh69kR6-j_m8EJ-So';
  var destinationSheetName = "Unprocessed Acct Data";

  if (e.source.getSheetName() == sourceSheetName && e.range.getColumn() == 37 && e.value.toUpperCase() == "Y") {
  var row = e.range.getRow();
  var sourceValues = e.source.getRange("B" + row + ":AK" + row).getValues()[0];
  var values = [sourceValues.slice(0, 35)];
  values[0].unshift("JT");
  Logger.log(values[0])
  var tss = SpreadsheetApp.openById(destinationSpreadsheetId);
  var ts = tss.getSheetByName(destinationSheetName);
  ts.getRange(ts.getLastRow()+1 , 2 , values.length, values[0].length).setValues(values);
  e.range.setValue("Copied");
}
}

Blank row every time

1 Ответ

0 голосов
/ 10 декабря 2018

Это примерно тот же код.Добавляет строку к листу назначения.Вы хотите, чтобы это добавить или переписать.Он не добавляет никаких строк, кроме добавляемой.

function MyonEdit(e){
  if(e.range.getSheet().getName()=='Sheet19' && e.range.getColumn()==37 && e.value.toUpperCase()=='Y'){
    var row=e.range.getRow();
    var vA=e.range.getSheet().getRange(row,1,1,35).getValues();
    vA[0].splice(0,0,'JT');
    var ss=SpreadsheetApp.openById('SSID');
    var sh=ss.getSheetByName('Sheet2');
    sh.getRange(sh.getLastRow()+1,2,vA.length,vA[0].length).setValues(vA);
    e.range.setValue('Copied')  
  }
}

У меня нет дополнительной строки.

Вот как выглядит лист назначения после трех выполнений.

enter image description here

...