Frage

Ist es möglich, eine Funktion in Google -Tabellen zu definieren, die in einer Zelle verwendet werden können?

Es wäre hilfreich, wenn ich Funktionen definieren und verwenden könnte, die sich auf andere Zellen beziehen, wie ich native Funktionen verwenden kann, z. B. durch Eingabe =myfunction(C1, C2, C3)

War es hilfreich?

Lösung

Ja - da ist ein Lernprogramm. Verwenden Sie einfach JavaScript -Funktionen mit Namen in Ihrer Tabelle. Definieren Sie sie mit Tools> Skript -Editor.

Achten Sie auf Namensbeschränkungen; Ich war verwirrt über das Verhalten von Funktionen, die ich mit Namen wie "Funktion x10 () {}" erstellt habe, die nicht gefunden wurden. Umbenennen in einen längeren Namen, das ihn behoben hat. Es gibt wahrscheinlich dokumentierte Regeln für das, was nicht erlaubt ist, aber ich weiß nicht, wo sie sind.

Andere Tipps

Ich bin ein "Newbee". Aber ist meine Erfahrung, dass Sie nur über das "Range" -Objekt auf eine "Zelle" zugreifen können. Sie müssen den Bereich als einzelne Zelle definieren. Zum Beispiel "A1: A1" erhalten Sie Zugriff auf die Zelle in "A1".

Ein Bereich ist ein Objekt, das einem "Blatt" zugeordnet ist. Ein Blatt ist ein Objekt, das einer "Tabelle" zugeordnet ist.

Hier ist ein Beispielcode, um auf Zelle A1 im aktuellen aktiven Blatt zugreifen zu können:

var cell_A1 = SpreadsheetApp.getActiveSheet().getRange("A1:A1");

Von hier aus können Sie das Objekt wie jeder andere Parameter übergeben.

myFunction(cell_A1);

Die Empfangsfunktion muss "wissen", dass sie sich mit einem "Bereich" befasst. Es kann nur auf seine Werte zugreifen, indem sie "Methoden" aufrufen, die dem "Bereich" -Objekt zugeordnet sind.

Vorsichtig sein! Ein "Bereich" kann aus mehr als einer Zelle bestehen. Ihre aufgerufene Funktion sollte testen, um festzustellen, dass sie mit einer einzelnen Zelle arbeitet. Wenn Sie eine Reihe von mehr als einer Zelle übergeben, wirkt Ihre Funktion möglicherweise nicht so, wie Sie es erwarten.

Die beiden Methoden eines Bereichsobjekts: "getnumrows () und" getnumcolumns () "gibt die Anzahl der Zeilen und Spalten in einem Bereichsobjekt zurück.

Wenn Sie im Allgemeinen Methoden verwenden, die sich auf das Ändern oder Zugriff auf eine einzelne Zelle beschränken und mit einem größeren Bereichssatz arbeiten, wird die Funktion nur mit dem oberen linken Zellmitglied durchgeführt. Aber sei vorsichtig. Während Sie annehmen, dass eine Methode nur eine einzelne Zelle ändert, kann dies tatsächlich alle Zellen im Bereich beeinflussen. Lesen Sie die Dokumentation genau.

Es gibt eine andere Methode, um einen Bereich einer einzelnen Zelle zu erhalten. Die Anweisung sieht so aus:

var cell_B2 = SpreadsheetApp.getActiveSheet().getRange(2, 2, 1, 1).

Die ersten beiden Parameter geben die Funktion "getRange" an, die Position der Zelle (in Zeile, Spaltenformat). Die zweiten beiden Parameter definieren die Anzahl der "Zeilen" und "Spalten" für den Bereich. Indem Sie beide auf "1" festlegen, greifen Sie auf eine einzelne Zelle zu.

Hoffe das hilft.

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