Scripts da planilha do Google compartilhados em planilhas (não em bibliotecas)

Eu fiz uma tonelada de pesquisa para esse problema e acho que o problema é que todas as respostas resultam em uma solução que requer que você crie uma biblioteca. Então, a única maneira que vejo de adicionar essa biblioteca a uma planilha é criar um novo script para essa planilha e incluí-la.

O que eu quero: Um monte de planilhas que incluem um script mestre. Cada vez que o script é atualizado, todos eles são atualizados para usar o script mais recente.

O que eu tenho: 15 planilhas que possuem cópias do roteiro original. O script original mudou e agora parece que eu tenho que editar cada script chamadoCopy of myScriptName que existe dentro de cada planilha copiada.

O que fiz: criei a primeira planilha e escrevi o script de dentro de um projeto que criei em seu editor de scripts. Trabalhou perfeito. Eu então fiz 14 cópias dessa planilha para cada divisão de uma empresa para usar.

Como posso compartilhar o script e gerenciá-lo fora de qualquer uma das planilhas individuais? Eu tenho que estar faltando alguma coisa aqui, considerando todas as pessoas que procuram essa mesma resposta. Eu só não vejo como fazer disso uma biblioteca resolve meu caso de uso.

Obrigado!

Eu não vejo o que isso vai ajudar, mas por solicitação do comentário aqui é o script:

function createRollupTable() {

  //Return if:
  //   There is only the account code parameters passed in with no quarterly info
  //   If the length of the account code parameters passed is empty
  if(arguments.length <= 1 || !arguments[0] || arguments[0].length <= 0) {
    return "";
  }

  var rollupTable = new Array();
  var fullListAccountCodes = arguments[0];

  //The first column of output is the full list of account codes for all the quarters
  rollupTable[0] = fullListAccountCodes;

  //Array to keep the YTD total for each account code
  var yearlyAccountCostOutput = new Array(fullListAccountCodes.length);

  //Iterate over all the quarters that were passed in
  for(var i=1;i<arguments.length;i++) {

    //This array should be set to the total length of the available account codes
    var quarterlyRollupCostOutput = new Array(fullListAccountCodes.length);
    var quarterlyBreakdown = arguments[i];
    var quarterIndexCounter = 0;
    var quarterTotalCost = 0;

    //Iterate over all the account codes
    for(var j=0;j<fullListAccountCodes.length && quarterIndexCounter<quarterlyBreakdown.length;j++) {

      //Find the one that matches the current account code for this quarter
      if(fullListAccountCodes[j] == quarterlyBreakdown[quarterIndexCounter][0]) {

        //Set the index of the output based on the full list so they align
        quarterlyRollupCostOutput[j] = quarterlyBreakdown[quarterIndexCounter][1];

        //Add this cost to the running total for the quarter
        quarterTotalCost += quarterlyBreakdown[quarterIndexCounter][1];

        //Add the total amount for the yearly rollup for that account code
        if(yearlyAccountCostOutput[j]) {
          yearlyAccountCostOutput[j] += quarterlyBreakdown[quarterIndexCounter][1];
        } else {
          yearlyAccountCostOutput[j] = quarterlyBreakdown[quarterIndexCounter][1];
        }

        //Increment the counter so we search for the next account code in the quarter
        quarterIndexCounter++;

      }
    }

    rollupTable[i] = quarterlyRollupCostOutput;

    //Add a blank row in the results for spacing
    rollupTable[i].push("");

    //Add the quarterly total cost
    rollupTable[i].push(quarterTotalCost);

  }

  //Add a blank row for spacing
  rollupTable[0].push("");

  //Google spreadsheet forces you to pad with non breaking spaces, no right align option available
  var spaces = "";
  var numSpaces = 66;
  for(var i=0;i<numSpaces;i++){spaces+=String.fromCharCode(160);};

  //Add a row for the Totals
  rollupTable[0].push(spaces + "Totals:");

  //Add the YTD column
  rollupTable.push(yearlyAccountCostOutput);

  return rollupTable;
}

questionAnswers(1)

yourAnswerToTheQuestion