ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
1280
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
  1. #1
    Avatar von HonniCilest
    HonniCilest ist offline Mitglied Platin
    Registriert seit
    Jun 2009
    Ort
    Java Insel
    Beiträge
    741
    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 :
    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.
     
    Jeder Fehler, aus dem wir lernen, ist ein Erfolg...
    ...Aber mach' nicht den Fehler, nicht aus deinen Fehlern zu lernen.

  2. #2
    Avatar von HonniCilest
    HonniCilest ist offline Mitglied Platin
    Registriert seit
    Jun 2009
    Ort
    Java Insel
    Beiträge
    741
    Vorübergehend habe ich nun
    Code :
    1
    
    Left(s, 1) * 10 ^ (Len(s) - 1)
    Wenn jemand eine Bessere Lösung kennt immer her damit.
     
    Jeder Fehler, aus dem wir lernen, ist ein Erfolg...
    ...Aber mach' nicht den Fehler, nicht aus deinen Fehlern zu lernen.

  3. #3
    Avatar von Yaslaw
    Yaslaw ist gerade online n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    7.044
    So direkt kenne ich grad keine Funktion die dri das abnimmt. Anstelle von TRUNC() gibts in VBA fix()
    Code vb:
    1
    2
    3
    4
    5
    6
    7
    
    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)
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements¨in PHP-Code kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit Code-Tags verwenden

Thema nicht erledigt