VBA - Funktion vs Sub - ohne Rückgabewert - Aufruf wie z.B. CDbl

  • Excel

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    VBA - Funktion vs Sub - ohne Rückgabewert - Aufruf wie z.B. CDbl

    Hallo,

    ich möchte eine erweiterte Funktion (oder sub) schreiben die Strings oder Integer in Doubles umwandelt. Die Funktion soll zusätzlich leere Strings oder Strings die nur aus Leerzeichen besthen als 0.0 ausgeben.
    Mein erster Ansatz:
    Function CDblPlus(ByVal toDbl As Variant) As Double
    If IsNumeric(toDbl) = True Then
    toDbl = CDbl(toDbl)
    ElseIf toDbl = "" Or toDbl = " " Then
    toDbl = CDbl(0)
    End If
    CDblPlus = toDbl
    End Function

    Bei dieser Variante muss ich mein Programm so schreiben:
    zahl1 = CDblPlus(stringToDouble)
    zahl2 = CDblPlus(intToDouble)
    meinDouble = zahl1 + zahl2


    das ist mit aber zu doof, ich will lieber:
    meinDouble = CDblPlus(stringToDouble) + CDblPlus(intToDouble)

    Wie muss meine Funktion aussehen? Mit einem Sub muss ich den Call Befehl verwenden und das klappt auch nicht in einer Summe. Kann man da irgendwas bei der Parameterübergabe in der Funktion drehen, Stichwort ByRef und ByVal ?

    vielen Dank für die Hilfe,

    Paul