Итак, у меня есть этот скрипт, который в основном позволяет мне реформировать отчет, чтобы он был в правильном формате для ссылки на него по формуле запроса (на другом листе). Однако моя проблема в том, что для правильного сопоставления мне нужно добавить столбец в начале этого листа, который я перестраиваю. Когда я пытаюсь сделать это в скрипте, он выдает ошибку, когда начинается отображение части функции (не может вызвать функцию "indexOf" ("Totals")). Я попытался использовать утилиты flu sh и sleep, чтобы отделить вставку столбца от начала сценария сопоставления. Ничто не работает, если я не добавлю столбец на лист перед запуском сценария. Вот сценарий:
function Builder() {
var indexsheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("References");
var cell = indexsheet.getRange(3, 3).getValue(); //get the date I want to search for
var final = Utilities.formatDate(cell, "GMT", "MM-dd-yyyy"); //get the date in the right format
var filesource = DriveApp.searchFiles("title contains '" + final + "' and parents in '1OLEJWPc3pBaFXJH2DY-D7gdbU1J0hfKR'");
indexsheet.getRange(2, 3).clearContent()
if(filesource.hasNext() === true){
while(filesource.hasNext()){
var File = filesource.next();
var ID = File.getId();
var filename = File.getName()
}
File.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.VIEW);
indexsheet.getRange(2, 3).setValue(ID);
}
if(filename.indexOf('Rebuilt') === -1){
var ss = SpreadsheetApp.openById(ID);
var sheet = ss.getActiveSheet();
var values = sheet.getRange(2, 1, sheet.getLastRow() - 1, 24).getValues();
var n = "";
sheet.InsertColumnBefore(1)
SpreadsheetApp.flush()
Utilities.wait(5000)
var res = values.map(function(row) {
if (row[1].indexOf("Totals") != -1) { // Modified
n = row[1];
return row;
}
return [n, row[1], row[2], row[3], row[4], row[5], row[6], row[7], row[8], row[9], row[10], row[11], row[12], row[13], row[14], row[15], row[16], row[17], row[18], row[19], row[20], row[21], row [22], row[23]]; // Modified
});
sheet.getRange(sheet.getLastRow() + 3, 1, res.length, res[0].length).setValues(res);
sheet.insertColumnBefore(1)
File.setName(filename + " " + "Rebuilt")
}
}
Извините, если это сбивает с толку, любая помощь будет оценена.