Seite 1 von 2
Funktions Parameter als Object
Verfasst: Di, 26.05.2015 07:21
von clag
Hallo Kenner und Könner,
wie kann man an eine Funktion eine Zelleadresse als Object übergeben,
so das man beliebig Inhalt und Eigenschaften auswerten kann?
=MEINFUNCTION(M33)
liefert mir eine Fehlermeldung "Objektvariable nicht belegt"
Re: Funtions Parameter als Object
Verfasst: Di, 26.05.2015 08:06
von Stephan
wie kann man an eine Funktion eine Zelleadresse als Object übergeben
garnicht.
Alternative kann die Übergabe der Zelladresse sein, z.B.:
=MEINFUNCTION(ZELLE("Adresse"))
Gruß
Stephan
Re: Funtions Parameter als Object
Verfasst: Di, 26.05.2015 08:25
von Karolus
Hallo
wie kann man an eine Funktion eine Zelleadresse als Object übergeben,
so das man beliebig Inhalt und Eigenschaften auswerten kann?
Indem man ein Calc-ADDINN schreibt, und in der IDL-beschreibung das Argument als
::com::sun:
:table::XCellRange definiert.
http://www.openoffice.org/api/docs/comm ... AddIn.html
Re: Funtions Parameter als Object
Verfasst: Di, 26.05.2015 08:54
von clag
Hallo
@Stephan
Danke für die klare Ansage
@Karolus
ok gut zu wissen das da noch ein Weg möglich ist abe der überfordert mich wohl zZ
aber nach noch einmal anders gefragt
kann man einen Parameter unterschiedlich auswerten?
zB
=MEINEFUNKTION(Spalte(G12))
der Code
Code: Alles auswählen
Function MEINEFUNKTION( xInput as Variant )
Print xInput
print bringt "
7"
kann ich irgendwie (mit einem Trick) auch ein print generieren, das mir zusätzlich "Spalte(G12)" liefert
also das ich Resultat und String bekomme?
Re: Funtions Parameter als Object
Verfasst: Di, 26.05.2015 09:12
von Karolus
Hallo
zB =MEINEFUNKTION(Spalte(G12))
Da es bereits die Funktion SPALTE gibt, wird diese zuerst aufgelöst und gibt die Spaltennummer zurück -- deine `MEINEFUNKTION` bekommt daher nichts weiter als die Zahl 7 zu sehen.
Re: Funtions Parameter als Object
Verfasst: Di, 26.05.2015 09:30
von clag
Hallo Karolus,
schade, aber es ist dann eben so! Hatte gehofft es mir ganz einfach machen zu können,
ich wollte an "MeineFunktion" die Info "column/row" und die "Position" ohne zusätzlichen Code übergegen
jetzt müsste ich schreiben
=MEINEFUNKTION("Spalte"; Spalte()) oder
=MEINEFUNKTION("Zeile"; Zeile())
ich finde, das sieht irgendwie doof aus.
Re: Funtions Parameter als Object
Verfasst: Di, 26.05.2015 09:37
von Karolus
Das sieht nicht nur so aus....
Re: Funtions Parameter als Object
Verfasst: Di, 26.05.2015 09:51
von clag
Hallo Karolus,
ich hatte es schon befürchte, das dein Kommetar diesmal etwas bissiger ausfällt
Aber wie sage ich es denn meinem Kinde in eleganterer Form, das der Wert als Index einer Spalt oder Zeile anzuwenden ist?
Ja man könnte den Wert gleich als Zahl eingeben z.B.
=MEINEFUNKTION("Spalte"; 154)
aber wer weiß schon aus dem Kopf welche Spalte "EX" ist ?
Re: Funtions Parameter als Object
Verfasst: Di, 26.05.2015 10:08
von Karolus
Die Funktion =SPALTE(EX1) weiss es...
Re: Funtions Parameter als Object
Verfasst: Di, 26.05.2015 10:17
von Stephan
Ja man könnte den Wert gleich als Zahl eingeben z.B. =MEINEFUNKTION("Spalte"; 154)
aber wer weiß schon aus dem Kopf welche Spalte "EX" ist ?
Was willst Du denn nun überhaupt ... ?
Wenn Du bereit bist Formeln so zu parametieren wie in "=MEINEFUNKTION("Spalte"; 154)", kannst Du genausogut auch "=MEINEFUNKTION("G21")" verwenden (was dann nicht doof aussieht), weil das Ziel meines Beispiels (deshalb auch mit "z.B." gekennzeichnet) doch nur das war einen Vorschlag zu machen bei dem sich beim 'Ziehen' oder Kopieren der Formel der Bezug automatisch anpasst.
Da in "=MEINEFUNKTION("Spalte"; 154)" die 154 beim Ziehen/Kopieren ohnehin statisch ist, ist stattdessen "=MEINEFUNKTION("G21")" dann die bessere Lösung.
... und bitte komme selbst darauf wie Du mit "G21" innerhalb Deiner benutzerdefinierten Funktion auf das Zellobjekt zugreifen kannst
Gruß
Stephan
Re: Funtions Parameter als Object
Verfasst: Di, 26.05.2015 10:22
von clag
Ha!
na denn bin ich ja wieder bei
=MEINEFUNKTION("Spalte"; Spalte(EX))
ich glaube es ist einfacher ich werde die Funktion in zwei separate Funktionen aufbrechen
eine nur für Zeile und eine für Spalte, dann brauche ich nur die Zahl.
Na nen Versuch wars trotzdem wert.
Also allerbesten Dank für die Unterstützung.
Re: Funtions Parameter als Object
Verfasst: Di, 26.05.2015 10:38
von Karolus
Wie soll ich das jetzt verstehen?
Hast du tatsächlich diesen Thread gestartet nur um irgendwie bereits vorhandene Funktionen ( SPALTE, ZEILE ) neu zu erfinden.
Re: Funtions Parameter als Object
Verfasst: Di, 26.05.2015 10:40
von clag
Hallo Stephan,
unser Beiträge haben sich gerade überschnitten.
Stephan hat geschrieben:... und bitte komme selbst darauf wie Du mit "G21" innerhalb Deiner benutzerdefinierten Funktion auf das Zellobjekt zugreifen kannst
und ich zeige auch schon mal vorrauseilendes erröten für meine Fragerei
deine Antwort lässt mich ja vermuten das ich mich gerade ziemlich daneben ziele,
aber es klingel irgenwie garnix bei mir, außer mein Tinitus?
gib mir doch bitte noch einen Tip.
Re: Funtions Parameter als Object
Verfasst: Di, 26.05.2015 10:50
von clag
Hallo Karolus,
Karolus hat geschrieben:
Hast du tatsächlich diesen Thread gestartet nur um irgendwie bereits vorhandene Funktionen ( SPALTE, ZEILE ) neu zu erfinden.
nein nen bischen deppert bin ich ja schon aber noch nicht völlig.
ich möchte mit einer Funktion die letzte benutze Zelle ermitteln entweder für Spalte oder Zeile,
darum muss die Funktion irgendwie wissen ob und in welcher Spalte / Zeile gesucht werden soll.
Ihr beide treibt gerade, "wie ein Wiesel das Kaninchen über den Acker" mich durch das Basicgebüsch.

Re: Funtions Parameter als Object
Verfasst: Di, 26.05.2015 10:57
von Stephan
verwende:
=MEINEFUNKTION("G21")
mit:
Code: Alles auswählen
Function MEINEFUNKTION(x As String)
zellobjekt = ThisComponent.CurrentController.ActiveSheet.getCellRangeByName(x)
'.... mache was mit dem zellobjekt
End Function
Das Ganze sieht in der Zelle dann nicht doof aus, hat nur den Nachteil das sich die Formel bei Ziehen/Kopieren eben nicht automatisch anpasst.
Gruß
Stephan