Seite 1 von 1

Benutzerdefinierte Funktion mit einem Array als Parameter

Verfasst: Fr, 20.03.2009 08:14
von professor_
Hallo,

ich möchte eine benutzerdefinierte Funktion mit einem Array als Parameter erstellen, in der Art:

Code: Alles auswählen

Function TEST(f)
	TEST = -1
	Length = UBound(f) - LBound(f) + 1
	for i=1 to Length-5
		if ( f(i) < 50 and f(i+1)<50 and f(i+2) < 50) then
			TEST=i
		end if
	next i
End Function
Die Fkt. schaut einfach nach dem ersten Wert < 50. Diese Funktion rufe ich dann in Calc auf: =TEST(A1:A10). In "Length" steht tatsächlich auch die richtige Anzahl von Werten, aber in der Zeile "if (f(i) ..." erhalte ich immer "index out of defined range".

Was mache ich denn da falsch?

Danke!
Sabine Lorentz

Re: Benutzerdefinierte Funktion mit einem Array als Parameter

Verfasst: Fr, 20.03.2009 09:13
von Charly
Hallo Sabine!
professor_ hat geschrieben: aber in der Zeile "if (f(i) ..." erhalte ich immer "index out of defined range"
Das kommt daher, weil ein Zellbereich immer zwei Dimensionen hat. In der ersten Dimension wird die Zeile und in der zweiten Dimension die Spalte abgebildet.
In dem Bereich A1:A10 gibt es eine Spalte und 10 Zeilen. Schreibe also statt f(i): f(i,1).
Bei unterschiedlichen Spaltenanzahl kannst du natürlich die zweite Dimension auch mit LBound und UBound abfragen:

Code: Alles auswählen

1_DimensionAnfang = lbound(f,1)
1_DimensionEnde = UBound (f,1)
2_DimensionAnfang = lbound(f,2)
2_DimensionEnde = UBound (f,2)
Gruß
Charly

[SOLVED] Benutzerdefinierte Funktion mit einem Array

Verfasst: Fr, 20.03.2009 09:51
von professor_
Danke - somit ist das Problem gelöst!