Exception: Service Spreadsheets failed while accessing document with id

This script worked fine for a long time, but then it started to give an error:
Exception: Service Spreadsheets failed while accessing document with id..
Here is this script, the error is in the fifth line:

function copyPage() {
  let mainPage = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('19.12 - 25.12.2023');
  let newSheetName="26.12.2023 - 02.01.2024"; // Имя нового листа

  let newSheet = mainPage.copyTo(SpreadsheetApp.getActive());
  newSheet.setName(newSheetName);
  console.log('Создание листа: ' + newSheetName);

  // Копирование диапазона данных на '26.12.2023 - 02.01.2024'
  let sourceRange = newSheet.getRange('AT4:AT30'); // Исходный диапазон для копирования
  let targetRange1 = newSheet.getRange('A4:A30'); // Первый целевой диапазон для вставки
  let targetRange2 = newSheet.getRange('L4:L30'); // Второй целевой диапазон для вставки

  let valuesToCopy = sourceRange.getValues();
  targetRange1.offset(0, 0, valuesToCopy.length, valuesToCopy[0].length).setValues(valuesToCopy);
  targetRange2.offset(0, 0, valuesToCopy.length, valuesToCopy[0].length).setValues(valuesToCopy);

  // Копирование диапазона с данными без формул на '26.12.2023 - 02.01.2024'
  let sourceDataRange = newSheet.getRange('C4:C31'); // Исходный диапазон с данными для копирования
  let targetValuesRange = newSheet.getRange('B4:B31'); // Целевой диапазон только для значений без формул

  let sourceDataValues = sourceDataRange.getValues();
  let targetValues = sourceDataValues.map(row => row.map(cell => cell instanceof Date ? cell : cell.toString()));
  targetValuesRange.setValues(targetValues);


  // Стирание данных в нескольких диапазонах на '26.12.2023 - 02.01.2024'
  let rangesToClear = [
    '26.12.2023 - 02.01.2024!E4:K30',
    '26.12.2023 - 02.01.2024!T4:T31',
    '26.12.2023 - 02.01.2024!W4:AA30',
    '26.12.2023 - 02.01.2024!AJ4:AJ31',
    '26.12.2023 - 02.01.2024!AM4:AT30'
  ];
  rangesToClear.forEach(range => {
    let clearRange = newSheet.getRange(range);
    if (clearRange) {
      clearRange.clearContent();
    }
  });
  
  // Сохранение формул на '26.12.2023 - 02.01.2024'
  let formulasToUpdate = [
    { range: '26.12.2023 - 02.01.2024!O4:O31', formula: "=sum('19.12 - 25.12.2023'!AW4;N4)" },
    { range: '26.12.2023 - 02.01.2024!P4:P31', formula: "=if(N4>0;N4-'19.12 - 25.12.2023'!N4;0)" },
    { range: '26.12.2023 - 02.01.2024!Q4:Q31', formula: "=if(O4>0;O4/'28.11 - 04.12.2023'!O4-1;0)" },
    { range: '26.12.2023 - 02.01.2024!AE4:AE31', formula: "=if(AC4>0;AC4-'19.12 - 25.12.2023'!AC4;0)" },
    { range: '26.12.2023 - 02.01.2024!AF4:AF31', formula: "=if(AD4>0;AD4/'28.11 - 04.12.2023'!AD4-1;0)" },
    { range: '26.12.2023 - 02.01.2024!AX4:AX31', formula: "=if(AV4>0;AV4-'19.12 - 25.12.2023'!AV4;0)" },
    { range: '26.12.2023 - 02.01.2024!AY4:AY31', formula: "=if(AW4>0;AW4/'28.11 - 04.12.2023'!Av4-1;0)" },
    { range: '26.12.2023 - 02.01.2024!Bb4:Bb31', formula: "=sum('19.12 - 25.12.2023'!Bb4;E4;G4;W4;AM4;AO4)" },
    { range: '26.12.2023 - 02.01.2024!Bc4:Bc31', formula: "=sum('19.12 - 25.12.2023'!Bc4;I4;J4;Y4;AQ4;AR4)" },
    { range: '26.12.2023 - 02.01.2024!Aq36:Aq37', formula: "=sum('19.12 - 25.12.2023'!Aq36;e36;w36;Am36)" },
    { range: '26.12.2023 - 02.01.2024!As36', formula: "=sum('19.12 - 25.12.2023'!As36;N33;AC33;AV33)" },

    // Другие формулы на '26.12.2023 - 02.01.2024'
  ];
  formulasToUpdate.forEach(formulaObj => {
    let rangeToUpdate = newSheet.getRange(formulaObj.range);
    if (rangeToUpdate) {
      rangeToUpdate.setFormula(formulaObj.formula);
    }
  });

// Изменение данных в трех диапазонах на новые данные на '26.12.2023 - 02.01.2024'
  let rangesToUpdate = [
    { range: '26.12.2023 - 02.01.2024!b2', data: [['Вторник/среда 26.12/27.12.2023']] },
    { range: '26.12.2023 - 02.01.2024!t2', data: [['пятница 29.12.2023']] },
    { range: '26.12.2023 - 02.01.2024!Aj2', data: [['Субб и Понед 30.12.2023 - 02.01.2024']] }
  ];

  rangesToUpdate.forEach(rangeObj => {
    let updateRange = newSheet.getRange(rangeObj.range);
    if (updateRange) {
      updateRange.setValues(rangeObj.data);
    }
  });

}

I don’t know what to do, now deleting old tables helps, after deleting the script runs. And for some reason, this is not the case with all tables, at first it was with one, and now five out of nine give this error.

Leave a Comment