Ich wollte eine benutzerdefinierte Funktion erstellen, die eine Abkürzung für sein würde if(somefunction(arg)=something,"sometext",somefunction(arg))
Ich muss also nicht duplizieren somefunction(arg)
Jedes Mal mache ich das, genau wie iferror
lass uns abschaffen if(iserror(somefunction(arg)),"sometext",somefunction(arg)
Zum Beispiel möchte ich tippen können iftrue(somefunction(arg),"=A1","message")
und das gleichzusetzen mit if(sumfunction(arg)=A1,"message",sumfunction(arg))
Ich habe es versucht:
Function iftrue(Fx, condition, show)
iftrue = Application.WorksheetFunction.if(Fx & condition, show, Fx)
End Function
Aber es gibt # Wert.
Um mein Problem zu diagnostizieren, habe ich einige einfachere Funktionen ausprobiert, um festzustellen, wo ich falsch liege. Also habe ich die Funktionen SUM und If dupliziert.
Diese "Summen" -Funktion funktioniert.
Function testsum(a, b)
test = Application.WorksheetFunction.Sum(a, b)
End Function
Aber diese "Wenn" -Funktion funktioniert nicht.
Function testif(a, b, c)
testif = Application.WorksheetFunction.if(a, b, c)
End Function
Ich denke, mein Problem ist die Art, wie ich das anrufe worksheet.function.if
.
Ich weiß, ich könnte dies einfach umgehen, indem ich stattdessen VBA ifs verwende, aber das ist nicht wirklich das, was ich tun möchte.
iftrue
's Parameter, die Sie ausprobiert haben und nicht funktionierten. Was funktioniert nicht? Falsche Ausgabe / Fehlermeldung?