Pergunta

Eu tenho uma função personalizada como um script de planilha do Google, que depende dos valores de outras células. Ele funciona bem na primeira vez em que o coloco em uma célula, mas quando altero os dados nas outras células, ele permanece o mesmo. Como posso fazer com que a primeira célula atualize seu valor automaticamente quando troco as outras células?

Foi útil?

Solução

Encontrei uma resposta que não me deixa totalmente feliz, mas é bom o suficiente, eu acho. Se você adicionar uma função chamada onEdit Para o roteiro de uma planilha, ela será chamada sempre que as coisas são editadas. Então, este é o código que funcionou para mim: (tem alguns detalhes que podem ser úteis, então eu os deixei sem edição)

function onEdit(event) {
  if (SpreadsheetApp.getActiveSheet().getName().substr(0,5) == "thing")
    SpreadsheetApp.getActiveSheet().getRange("I1").setValue(myCustomFunction());
}

Isso faz folhas cujo nome começa com thing, obtenha o resultado de myCustomFunction na célula I1.

Outras dicas

Eu tenho um problema similar.

É assim que estou fazendo isso atm, mas não é a melhor solução. Estou procurando um melhor.

Se algum valor nos preços da folha e na coluna D mudar. Significado Se algum valor da célula for alterado em toda a coluna, atualiza o valor da função personalizado.

//Search Price sheet with the given name. Return price. dummy param updates google ss once the "Prices" sheet values changed.
function searchPrice(price,dummy)
{
  var SPREADSHEET_NAME = "Prices";
  var SEARCH_COL_IDX = 2;
  var RETURN_COL_IDX = 3;
  var values = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SPREADSHEET_NAME).getDataRange().getValues();
  for (var i = 0; i < values.length; i++)
  {
    var row = values[i];
    if (row[SEARCH_COL_IDX] == price)
    {
      return row[RETURN_COL_IDX];
    }
  }
}

É assim que você chama de explosão (B8, preços! D: D)

Basta dar à sua função personalizada um param dummy. Não faz nada na função personalizada.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top