UDF und drei optionale Argumente

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

Moderator: Moderatoren

clag
********
Beiträge: 3547
Registriert: Di, 27.01.2009 15:30

UDF und drei optionale Argumente

Beitrag von clag » Di, 29.05.2018 07:31

Hallo Kenner und Könner,

in einer UDF möchte 3 optionale Arumente übergeben, das ist auch soweit klar

Code: Alles auswählen

MEINEUDF( HauptArgument as Variant, optional Argument1, optional Argument2, optional Argument3 )

wenn ich nun die UDF aufrufe mit

Code: Alles auswählen

=MEINEUDF(A1:C3;;;"X") 
um Argument3 zu übergeben dann funktionieren die Zuweisungen durch

Code: Alles auswählen

if IsMissing  Argument1 then ...
if IsMissing  Argument2 then ...
nicht mehr.
Denn nun werden Argument1 und Argument2 zu 0 ! wieso eigentlich ?
Wie löse ich das Problem mit meinen Voreinstellungen durch die "if IsMissing" Zuweisungen ?

Ich könnte mit

Code: Alles auswählen

if IsMissing  Argument1 or Argument1 = 0 then ...
if IsMissing  Argument2 or Argument2 = 0 then ...
arbeiten, aber was mach ich wenn ich tatsächlich einmalmal 0 übergeben möchte?
LG
clag

nutzt: WinXP SP3 / AOO 4.1.2 / Firefox

Stephan
********
Beiträge: 10633
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: UDF und drei optionale Argumente

Beitrag von Stephan » Di, 29.05.2018 08:52

Denn nun werden Argument1 und Argument2 zu 0 ! wieso eigentlich ?
weiß ich leider nicht
Wie löse ich das Problem mit meinen Voreinstellungen durch die "if IsMissing" Zuweisungen ?
am Einfachsten indem Du für die Funktionsargumente einem bestimmten Wert als ismissing-Wert annimmst. Sollte das wirklich nicht möglich sein, dann indem Du eine weitere Hilfsfunktion definierst (mit zweckmäßigerweise kurzem Namen):

Code: Alles auswählen

Function x(optional y)
	If IsMissing(y) Then 
			x = "missing"
		Else
			x = y
	End If
End Function
Jetzt kannst Du aufrufen mit:

=MEINEUDF(A1:C3;x();x();"X")

und den String "missing" auswerten.



Gruß
Stephan

Antworten