[Excel] Trunc() in VBA

HonniCilest

Erfahrenes Mitglied
Hallo liebe Community,

ich bin grad auf ein Problem gestoßen, was meiner bisherigen Ansicht von Excel widerspricht ;)

Bisher dachte ich immer jede Funktion einer Excel-Tabelle könnte mit
Code:
WorksheetFunction.Funktionsname(...)
in VBA ausgeführt werden. aber dem ist anscheinend nicht so, bestes Beispiel: trunc.

Ich verwende Excel 2003 und folgendes Beispiel würde ich gerne in VBA ausführen:
Zelle A1: 1234
Zelle A2: =TRUNC(A1,-1*(LEN(A1)-1))
--> Ergebnis: 1000

Zur Erklärung: Ich habe in VBA einen String, welcher aus einer XML ausgelesen wird. Es ist sichergestellt, dass es sich um eine positive ganze Zahl handelt. Der Wert der Zahl soll auf die führende Dezimalstelle gerundet werden.

Ich bin nicht auf der Suche nach Workarounds, ich weiß wie ich mir Hilfsfunktionen basteln könnte, aber das ist nicht mein Ziel. Kennt jemand eine Alternativfunktion in VBA? Mit Google bin ich leider bisher nicht fündig geworden.
 
Vorübergehend habe ich nun
Code:
Left(s, 1) * 10 ^ (Len(s) - 1)
Wenn jemand eine Bessere Lösung kennt immer her damit.
 
So direkt kenne ich grad keine Funktion die dri das abnimmt. Anstelle von TRUNC() gibts in VBA fix()
Visual Basic:
Public Function cutToFirstDigit(ByVal iValue As Double) As Long
    cutToFirstDigit = Fix(iValue)
    cutToFirstDigit = Fix(cutToFirstDigit * 10 ^ (-1 * Len(cutToFirstDigit))) * 10 ^ Len(cutToFirstDigit)
End Function


value = cutToFirstDigit(-13456.6)
 

Neue Beiträge

Zurück