Скрипт не запускается, если я не добавляю столбец вручную - PullRequest
0 голосов
/ 18 января 2020

Итак, у меня есть этот скрипт, который в основном позволяет мне реформировать отчет, чтобы он был в правильном формате для ссылки на него по формуле запроса (на другом листе). Однако моя проблема в том, что для правильного сопоставления мне нужно добавить столбец в начале этого листа, который я перестраиваю. Когда я пытаюсь сделать это в скрипте, он выдает ошибку, когда начинается отображение части функции (не может вызвать функцию "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")
  }
}

Извините, если это сбивает с толку, любая помощь будет оценена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...