Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1476to1480
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

#Wert in eigener Funktion abfangen

#Wert in eigener Funktion abfangen
18.02.2016 17:13:42
SteffenS
Hallo Zusammen,
ich habe folgende benutzerdefinierte Funktion erstellt und möchte gern, wenn das Ergebnis #Wert ist eine 0 ausgeben.
Wie kann ich dies erreichen?
Function StS_MaxWenn(aRange As Range, vdatum As Date, bdatum As Date, sp_datum As Long, aFunc  _
As Long, sp_func As Long)
'Spalten aus Tabelle Korrigieren, da Array bei 1 beginnt
sp_datum = sp_datum - 10
sp_func = sp_func - 10
'MsgBox (aRange.Address)
Dim vArray 'Array
Dim i As Long, j As Long, k As Long
vArray = aRange 'Bereich in Array einlesen (inkl. Überschrift)
vArray = WorksheetFunction.Transpose(vArray) 'Spalten und Zeilen tauschen
For i = UBound(vArray, 2) To 1 Step -1 'Von hinten nach vorn durchlaufen
'MsgBox (vArray(17, 1))
If vArray(sp_datum, i) >= vdatum And vArray(sp_datum, i) 
Danke Euch
VG SteffenS

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: #Wert in eigener Funktion abfangen
18.02.2016 17:45:52
EtoPHG
Hallo Steffen,
Was hat die UDF für eine Funktion? Die Interpretation des lässt darauf schliessen, dass du irgendwelche Standardfunktionen von XL nachprogrammierst. Was für eine Zeitverschwendung!
Warum ist astring nicht definiert?
Warum hat die Funktion keinen Datentyp (bzw. Variant) als Rückgabewert?
Teste den Inhalt von astring vor der Übergabe an die Funktion
und wenn sie leer ist oder einen Fehlerwert enthält, setze die Variable = 0
Gruess Hansueli

Wenn die UDF keinen eigenen Datentyp hat, ...
18.02.2016 18:11:45
Luc:-?
…ist der RückgabeWert automatisch Variant, Hansueli & Steffen;
das ist günstig, wenn man unterschiedliche entstehende FehlerWerte original (bzw in CVErr-Werte übersetzt) zurückgeben will. Anderenfalls ist nur der StandardFehler #WERT! möglich. Allerdings sollte dann auch astring As Variant deklariert oder wenigstens in der Deklaration aufgeführt sein (ohne Datentyp ebenfalls Variant ).
Ansonsten handelt es sich hierbei offensichtlich um eine MehrzweckFkt ala TEILERGEBNIS und AGGREGAT, die aber ungünstigerweise genauso auf ZellBereiche (aRange As Range) beschränkt ist. Wenn du das nicht machen würdest, Steffen,
könnte für Argument1 auch ein Ausdruck verwendet wdn, mit dem du die infrage kommenden Daten einschränken könntest. Das mache ich bspw in meiner UDF AggregateXk (Vs1.3!), die im Archiv zu finden ist. Diese bietet noch mehr Fktsmöglichkeiten ala xlFkt AGGREGAT, aber eben auch für Datenfelder aus Ausdrücken (expressions⇐{Matrix-}Konstanten u.[Teil-]Fmln), nicht erst ab Arg1=14 wie AGGREGAT.
Gruß, Luc :-?
Besser informiert mit …
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige