у меня 4 листа.Форма, сырье, URL и США / Япония / Канада.Я получаю значение URL электронной таблицы из листа URL и использую «IMPORTRANGE» на листе «Сырье» для передачи таблицы данных.Оттуда я перебираю таблицу в необработанном листе, чтобы проверить, совпадают ли значения со значениями в листе формы.Если он совпадает, я перенесу эту строку в лист США / Япония / Канада.
Итак, я получил этот код в своих листах Google:
var mainWS = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Form');
var continentWS = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('USA/Japan/Canada');
var rawWS = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Raw');
var urlWS = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('URLs');
var tourName = mainWS.getRange('C4').getValue();
var depDate = new Date(mainWS.getRange('C5').getValue());
var status = mainWS.getRange('C6').getValue();
//extract table data
var url = urlWS.getRange("B4").getValue();
rawWS.getRange('A1').setValue('=IMPORTRANGE("' + url + '","Main Data!A1:AE")');
var dummyHolder = rawWS.getRange("B1:B").getValues();
var lastRow = dummyHolder.filter(String).length;
Logger.log(lastRow);
//loop through the raw extract
for(var i = 2; i <= lastRow; i++){
var dateHolder = new Date(rawWS.getRange("E" + i).getValue());
if(rawWS.getRange("F" + i).getValue() == tourName && rawWS.getRange("I" + i).getValue() == status && dateHolder.getTime() === depDate.getTime()){
var continentLR = continentWS.getLastRow() + 1;
rawWS.getRange('Raw!' + i + ':' + i + '').copyTo(continentWS.getRange(continentLR, 1), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
}
}
Затем я неожиданно получил "TheКоординаты целевого диапазона выходят за пределы размеров листа «Сообщение об ошибке при входе в цикл.В частности, в первой строке после цикла for:
var dateHolder = new Date(rawWS.getRange("E" + i).getValue());
Для ясности, rawWS, в котором выполняется цикл, имеет 134 записи и регистрирует 134 в качестве своей последней строки.Я не знаю, почему я получаю ошибку здесь.
Когда я удаляю эту строку, она все равно выдает ошибку на следующей строке.Все ошибки внутри цикла for.
Есть идеи?