von CalcWeiss » Do, 03.10.2013 08:07
Das Hauptproblem bei eigenen Funktionen ist meines Erachtens, dass keine Zellobjekte sondern nur Zellinhalte an die Funktion übergeben werden. Man schlägt sich also mit einem Wert oder einem Array herum und hat keine Möglichkeit, auf die Adresse der Zelle zurück zugreifen. Bei =myFunc(A1) und =myFunc(B2) sieht die Funktion also keinen Unterschied, sofern sich der Zellinhalt nicht unterscheidet.
Eine Option wäre möglicherweise die Funktion =myFunc(A1, "A1"), bei der der erste Parameter für eine Aktualisierung sorgt, der zweite lediglich als Referenz dient. Aber falls sich am Sheet etwas verändert, z.B. eine neue Zeile ganz oben eingefügt wird, dann ändert sich die Funktion automatisch in
=myFunc(B1, "A1") und erfüllt nicht mehr ihren Zweck. Besser ist es, den ganzen Bereich abzudecken, der in der Funktion ausgewertet werden soll, denn dann bekommt man ein Array über alle Werte und braucht sich nicht mehr mit Zellobjekten herum zu schlagen.
Das Hauptproblem bei eigenen Funktionen ist meines Erachtens, dass keine Zellobjekte sondern nur Zellinhalte an die Funktion übergeben werden. Man schlägt sich also mit einem Wert oder einem Array herum und hat keine Möglichkeit, auf die Adresse der Zelle zurück zugreifen. Bei =myFunc(A1) und =myFunc(B2) sieht die Funktion also keinen Unterschied, sofern sich der Zellinhalt nicht unterscheidet.
Eine Option wäre möglicherweise die Funktion =myFunc(A1, "A1"), bei der der erste Parameter für eine Aktualisierung sorgt, der zweite lediglich als Referenz dient. Aber falls sich am Sheet etwas verändert, z.B. eine neue Zeile ganz oben eingefügt wird, dann ändert sich die Funktion automatisch in
=myFunc(B1, "A1") und erfüllt nicht mehr ihren Zweck. Besser ist es, den ganzen Bereich abzudecken, der in der Funktion ausgewertet werden soll, denn dann bekommt man ein Array über alle Werte und braucht sich nicht mehr mit Zellobjekten herum zu schlagen.