Заполните столбец A ТЕКСТОМ перед склейкой - PullRequest
0 голосов
/ 05 мая 2020

У меня есть следующий скрипт onEdit (e) Google Apps, который заполняет столбцы A: D в следующей строке другого листа. Теперь я хочу, чтобы он заполнял столбцы B: E и в столбце A той же строки, чтобы заполнить текст «SOP»:

 {
  var spreadsheet = e.source;
  var sheet = spreadsheet.getActiveSheet();
  var sourcesheetname = "SOP Register"
  var range = e.range;
  var sheet = range.getSheet();
  var row = range.getRow();
  var column = range.getColumn();
  var editedColumn = range.getColumn();
  var editedRow = range.getRow();
  var column = 7;
  var date = range.getValue();
  if(Object.prototype.toString.call(date) === '[object Date]' && editedColumn == column && editedRow > 3 && sheet.getName() == sourcesheetname) {
    var targetsheetname = "Internal Audit Register";
    var target = e.source.getSheetByName(targetsheetname);
    var numCols = sheet.getLastColumn();
    var values = sheet.getRange(row, 1, 1, numCols).getValues()[0];
    values.splice(7)
    values.splice(0, 0)
    values.splice(1, 0)
    values.splice(2, 3); // Removing undesired values
    var lastRow = target.getLastRow();
    var lastCol = target.getLastColumn();
    target.appendRow(values); // Append new row  
    sheet.hideColumns(6,2);
   }
}

Ниже мой исходный лист:

Source Data

Ниже приведены данные целевого листа после script:

enter image description here

Это мой желаемый результат:

enter image description here

Это образец моей таблицы. Код сценария начинается со строки 67.

Образец электронной таблицы

Просто не знаю, как это сделать.

1 Ответ

1 голос
/ 06 мая 2020

Ответ:

Используйте array.unshift(), чтобы добавить нужную строку в начало массива перед добавлением строки.

Дополнительная информация:

Согласно документации MDN:

Метод unshift () добавляет один или несколько элементов в начало массива и возвращает новую длину массива.

Итак, прежде чем добавлять новую строку на второй лист, вам нужно использовать unshift(), чтобы добавить строку "SOP" в начало:

{
  // ...
  var lastRow = target.getLastRow();
  var lastCol = target.getLastColumn();
  values.unshift("SOP"); // << Add this
  target.appendRow(values); // Append new row  
  sheet.hideColumns(6,1);
  sheet.hideColumns(7,1);
}

Надеюсь, это будет вам полезно!

Ссылки:

...