Wie aktualisiere ich eine Zelle in Google Spreadsheet?

8

Ich habe eine Spalte in Google Spreadsheet, die einen externen Webservice mit URLFetch in einem Google Script aufruft. Die Zelle verwendet zwei Parameter in der Zeile dieser Zelle. Nach einer Änderung, bei der diese beiden Parameter einen anderen Wert zurückgeben, wenn sie erneut an den Webservice gesendet werden, behält die Zelle einen zwischengespeicherten Wert bei. Ich weiß, dass es zwischengespeichert ist, denn wenn ich die Zeile kopiere und in eine andere Zeile einfüge, ändern sich die vom Webservice berechneten Werte in die richtigen.

Gibt es eine Möglichkeit, eine Zeile oder Zelle in einer Google-Tabelle zu zwingen, ihren Wert neu zu berechnen, insbesondere wenn ein externer Webservice in einer benutzerdefinierten Funktion verwendet wird?

capn
quelle
Ich weiß, dass ich alle Zellen aktualisieren kann, indem ich entweder das Skript bearbeite oder die Daten sortiere, aber ich suche etwas Feinabgestimmtes.
Kapn
Haben Sie F5 ausprobiert?
Jacob Jan Tuinstra
Ja, und Strg-F5 haben gerade mit dem Schließen und erneuten Öffnen begonnen, als ich es aktualisiert haben musste. Als ich zum ersten Mal alle Daten hinzufügte, dachte ich nicht daran. Nachdem es alle paar Tage mehr zu einer Zeile hinzugefügt wurde, wurde es nicht mehr so ​​wichtig.
Capn
Strg-R berechnet Formeln neu ... ähnlich wie Excel F9.
Gary W.
Es ist schwierig, das in ein Skript einzufügen, was die Frage verlangt.
Chenmunka

Antworten:

4

Fügen Sie die folgende Codezeile hinzu:

SpreadsheetApp.flush()

Siehe Referenz: Spülen

Jacob Jan Tuinstra
quelle
Bis es einen Befehl gibt, der eine einzelne Zelle, Spalte oder Zeile löscht, ist dies vermutlich der hartnäckige Ansatz, den ich verwenden muss. Es ist am besten, es nach Bedarf manuell in einer einzelnen Zelle aufzurufen, wenn alle Daten aktualisiert werden sollen (F5 und Strg-F5 tun dies nicht, sondern nur das Öffnen und Schließen), da das Aufrufen jedes Mal wahrscheinlich zu einem unbeabsichtigten Aufruf führen würde Schleifen und Vervielfältigen von Arbeiten beim ersten Öffnen des Blattes.
Capn
4

Ich bin hierher gekommen, um nach einer Antwort für dieselbe Situation zu suchen (Daten von externen Ressourcen aufrufen), habe aber seitdem eine alternative Methode ausgearbeitet, die funktioniert, also dachte ich, ich würde sie teilen.

Dies ist keineswegs die technisch versierte Methode, aber wenn Sie die Zelle löschen und dann rückgängig machen, wird sie neu geladen.

Arbeitet ein Vergnügen.

LBanh
quelle
1
Wie arbeitet man das in ein Skript?
Ale
wow, das funktioniert tatsächlich! Beachten Sie, dass Sie einige Sekunden warten müssen, bevor Sie rückgängig machen, sonst funktioniert es nicht
Hibbem