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
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