Function mit Optional
07.03.2019 23:54:25
Niclaus
Ich habe eine Function, die in etwa der Formel =FORMELTEXT() entspricht:
Function myFormelInhalt(Zelle As Range)
If Zelle.HasFormula Then
myFormelInhalt = Zelle.FormulaLocal
Else
myFormelInhalt = "##"
End If
End Function
Diese Function funktioniert. Wenn ich irgendwo in der Tabelle eingebe
"= myFormelInhalt(A1)" wird mir die Formel von A1 zurückgegeben.
Nun möchte ich - zu Uebungszwecken - mit "Optional" arbeiten, damit folgendes möglich wird: Ich gebe in B2 die Formel so ein:
"=myFormelInhalt()", also ohne Zell-Bezug.
Es soll mir dann die Formel aus der linken Zelle zurückgegeben werden, hier also die Formel von A2.
Die Function heisst dann so:
Function myFormelInhalt(Optional Zelle As Range)
If IsMissing(Zelle) Then
Set Zelle2 = Selection.Offset(0, -1)
If Zelle2.HasFormula Then
myFormelInhalt = Zelle2.FormulaLocal
Else
myFormelInhalt = "##"
End If
Else
If Zelle.HasFormula Then
myFormelInhalt = Zelle.FormulaLocal
Else
myFormelInhalt = "##"
End If
End If
End Function
Wenn ich "=myFormelInhalt()" ohne Bezug verwende, gibt sie "#WERT!" aus.
Meine Fragen: Setze ich Optional ganz falsch ein?
Muss ich anstelle von "IsMissing" einen andern Ausdruck verwenden?
Bin ich ganz auf dem Holzweg?
Und eine weitere Frage: Ich schreibe
myFormelInhalt = "##"
Ich möchte aber, dass der Fehlerwert #NV ausgegeben wird: als wirklicher Fehlerwert, nicht als Text.
Kann man diesen Fehlerwert so einfach "produzieren"?
Vielen Dank für Eure Hilfe
Niclaus