Domanda

Ho una funzione personalizzata come uno script di foglio di calcolo di Google, che dipende dai valori delle altre cellule. Funziona bene la prima volta che l'ho messo in una cella, ma poi quando cambio i dati nelle altre celle rimane lo stesso. Come posso fare il primo aggiornamento delle cellule il suo valore automaticamente quando cambio le altre cellule?

È stato utile?

Soluzione

Ho trovato una risposta che non pienamente mi rendono felice, ma è bene che indovinare abbastanza. Se si aggiunge una funzione chiamata onEdit allo script di un foglio di calcolo, verrà chiamato ogni volta roba viene modificato. Quindi, questo è il codice che ha funzionato per me: (che ha alcuni dettagli che potrebbero essere utili così ho lasciato loro inediti)

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

Questo rende fogli il cui nome inizia con thing, ottengono il risultato di myCustomFunction in I1 cella.

Altri suggerimenti

Ho un problema simile.

Questo è come mi sto facendo atm, ma la sua non è la soluzione migliore. Sto cercando uno migliore.

Se qualsiasi valore al foglio prezzi e le modifiche colonna D. Significato eventuale valore di una cella cambia in tutta la colonna si aggiorna il valore funzione personalizzata.

//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];
    }
  }
}

Questo è come lo chiami tu = searchPrice (B8, prezzi D: D)

Basta dare la funzione personalizzata di un parametro fittizio. E non fa nulla nella funzione personalizzata.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top