Benutzerdefinierte Funktion mit einem Array als Parameter

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

professor_
Beiträge: 9
Registriert: Mo, 14.04.2008 19:32

Benutzerdefinierte Funktion mit einem Array als Parameter

Beitrag 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
Charly
*****
Beiträge: 450
Registriert: Di, 20.01.2004 13:14
Wohnort: München

Re: Benutzerdefinierte Funktion mit einem Array als Parameter

Beitrag 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
professor_
Beiträge: 9
Registriert: Mo, 14.04.2008 19:32

[SOLVED] Benutzerdefinierte Funktion mit einem Array

Beitrag von professor_ »

Danke - somit ist das Problem gelöst!
Antworten