1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

[Excel] Trunc() in VBA

Dieses Thema im Forum "Office-Anwendungen" wurde erstellt von HonniCilest, 7. März 2012.

  1. HonniCilest

    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 (Text):
    1. 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.
  2. HonniCilest

    HonniCilest Erfahrenes Mitglied

    Vorübergehend habe ich nun
    Code (Text):
    1. Left(s, 1) * 10 ^ (Len(s) - 1)
    Wenn jemand eine Bessere Lösung kennt immer her damit.
  3. Yaslaw

    Yaslaw n/a Moderator

    So direkt kenne ich grad keine Funktion die dri das abnimmt. Anstelle von TRUNC() gibts in VBA fix()
    Code (Visual Basic):
    1. Public Function cutToFirstDigit(ByVal iValue As Double) As Long
    2.     cutToFirstDigit = Fix(iValue)
    3.     cutToFirstDigit = Fix(cutToFirstDigit * 10 ^ (-1 * Len(cutToFirstDigit))) * 10 ^ Len(cutToFirstDigit)
    4. End Function
    5.  
    6.  
    7. value = cutToFirstDigit(-13456.6)
    8.  

Diese Seite empfehlen