[Google-Apps-Script] Aktualisieren Sie Daten, die von einer benutzerdefinierten Funktion in Google Sheet abgerufen werden


Answers

Ich weiß, das ist eine alte Frage. Diese Methode erfordert jedoch keine Benutzeraktion, außer dass eine Änderung vorgenommen wird.

Was ich gemacht habe, war tbkn23 ähnlich.

Die Funktion, die ich neu bewerten möchte, hat einen extra unbenutzten Parameter, $ A $ 1. Also ist der Funktionsaufruf

=myFunction(firstParam, $A$1)

Aber im Code ist die Funktionssignatur

function myFunction(firstParam)

Anstatt eine Refresh-Funktion zu verwenden, habe ich die onEdit (e) -Funktion so verwendet

function onEdit(e)
{
   SpreadsheetApp.getActiveSheet().getRange('A1').setValue(Math.random());
}

Diese Funktion wird immer dann ausgelöst, wenn eine Zelle in der Tabelle bearbeitet wird. Wenn Sie nun eine Zelle bearbeiten, wird eine Zufallszahl in A1 platziert. Dadurch wird die Parameterliste als tbkn23 aktualisiert, wodurch die benutzerdefinierte Funktion neu bewertet wird.

Question

Ich habe ein benutzerdefiniertes Google Apps-Skript geschrieben, das eine id erhält und Informationen von einem Webdienst abruft (ein Preis).

Ich verwende dieses Skript in einer Tabelle, und es funktioniert gut. Mein Problem ist, dass sich diese Preise ändern und meine Tabelle nicht aktualisiert wird.

Wie kann ich es erzwingen, das Skript erneut auszuführen und die Zellen zu aktualisieren (ohne jede Zelle manuell zu durchlaufen)?




Wenn Sie eine benutzerdefinierte Funktion geschrieben und in Ihrer Tabelle als Formel verwendet haben, wird die Formel bei jedem Öffnen der Tabelle oder einer referenzierenden Zelle neu berechnet.

Wenn Sie das Tabellenkalkulationsprogramm weiter anstarren und die Werte ändern möchten, sollten Sie einen zeitgesteuerten Trigger hinzufügen, der die Zellen aktualisiert. Lesen Sie hier mehr über Trigger




Wenn Sie benutzerdefinierte Funktion innerhalb einer bestimmten Spalte sind, bestellen Sie einfach Ihre Tabelle nach dieser Spalte.

Die Reihenfolge erzwingt eine Aktualisierung der Daten, die die benutzerdefinierte Funktion für alle Zeilen dieser Spalte gleichzeitig aufruft.






Links