Frage

habe ich eine benutzerdefinierte Funktion als Google-Tabelle-Skript, das auf einigen anderen Zellen Werte abhängt. Es läuft ok das erste Mal, dass ich es in einer Zelle gesperrt, aber dann, wenn ich die Daten in den anderen Zellen ändern bleibt es gleich. Wie kann ich die erste Zelle Update seinen Wert automatisch, wenn ich die anderen Zellen ändern?

War es hilfreich?

Lösung

fand ich eine Antwort, die nicht vollständig macht mich glücklich, aber es ist gut genug, denke ich. Wenn Sie eine Funktion namens onEdit an das Skript einer Tabelle hinzufügen, wird es jedes Mal Sachen bearbeitet aufgerufen werden. Also, das ist der Code, der für mich gearbeitet: (es hat einige Details, die nützlich sein könnten, so ließ ich sie ungeschnittene)

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

Das macht Blätter, dessen Namen beginnt mit thing, das Ergebnis der myCustomFunction in der Zelle I1 erhalten.

Andere Tipps

Ich habe ein ähnliches Problem.

Dies ist, wie ich es atm tue, aber es ist nicht die beste Lösung. Ich bin auf der Suche nach einem besseren.

Wenn jeder Wert auf Blatt Preisen und Spalte D Änderungen. Bedeutung, wenn eine Zelle Wert in der gesamten Spalte ändert es den Wert benutzerdefinierte Funktion aktualisiert.

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

Dies ist, wie Sie es nennen searchPrice = (B8, Preise D: D)

Geben Sie einfach Ihre benutzerdefinierte Funktion eine Dummy-param. Es hat nichts in der benutzerdefinierten Funktion tun.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top