Я сравниваю два листа на основе второго столбца каждого из них. Если я обнаружил, что есть некоторые недостающие значения, я копирую соответствующую строку из листа1 в sheet2. Мой скрипт работает отлично, но я копирую каждую ячейку один за другим. Я уверен, что есть более эффективный способ справиться с этим. Я хотел бы скопировать и передать полную строку напрямую.Скопируйте все на основе условного оператора
Мой вопрос будет иметь больше смысла, если вы смотрите на мой код, особенно последняя часть:
function myFunction() {
var sheet1 = SpreadsheetApp.openById("ID").getSheetByName("Sheet1");
var sheet2 = SpreadsheetApp.openById("ID").getSheetByName("Sheet2");
var date1 = sheet1.getRange(1, 2, sheet1.getLastRow()).getValues(); //getRange(row, column, numRows, numColumns)
var date2 = sheet2.getRange(1, 2, sheet1.getLastRow()).getValues();
for (var i = 0; i < date1.length; i++){
test = sheet2.getRange(i+1, 2).getValue()
test1 = sheet1.getRange(i+1, 2).getValue()
if (test != test1) {
var data1 = sheet1.getRange(i+1,2).getValue();
var data2 = sheet1.getRange(i+1,3).getValues();
var data3 = sheet1.getRange(i+1,4).getValue();
sheet2.getRange(i+1, 2).setValue(data1);
sheet2.getRange(i+1, 3).setValue(data2);
sheet2.getRange(i+1, 4).setValue(data3);
}
}
}