Question

J'ai une fonction personnalisée en tant que script de feuille de calcul Google, qui dépend des valeurs d'autres cellules. Il passe bien la première fois que je l'ai mis dans une cellule, mais quand je change les données dans les autres cellules, il reste le même. Comment puis-je faire la première mise à jour de la cellule de sa valeur automatiquement lorsque je change les autres cellules?

Était-ce utile?

La solution

J'ai trouvé une réponse qui ne me rend pas pleinement heureux, mais il est assez bon, je suppose. Si vous ajoutez une fonction appelée onEdit au script d'une feuille de calcul, il sera appelé tous les trucs de temps est édité. Donc, c'est le code qui a fonctionné pour moi: (il a quelques détails qui pourraient être utiles pour que je les ai laissés non éditées)

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

Cela fait des feuilles dont le nom commence par thing, obtenir le résultat de myCustomFunction dans I1 cellulaire.

Autres conseils

J'ai un problème similaire.

Voilà comment je fais atm, mais ce ne est pas la meilleure solution. Je cherche un meilleur.

Si une valeur à feuille prix et les changements colonne D. Signification si une valeur de la cellule change dans toute la colonne, il met à jour la valeur de fonction personnalisée.

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

Voici comment vous l'appelez = searchPrice (B8, Prix D: D)

Il suffit de donner à votre fonction personnalisée factice un param. Il ne fait rien dans la fonction personnalisée.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top