[Excel] Cells.NumberFormat = "???"

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von FatFire.

    [Excel] Cells.NumberFormat = "???"

    hallo zusammen,
    bräuchte mal wieder hilfe mit Microsoft.Office.Interop.Excel.
    leider gibt das netz, vb-paradise & auch die msdn nichts her...
    mein problem, möchte eine range mit einem bestimmten nummernformat versehen, einmal 1000er trennzeichen und eine andere range aufrunden + einem % zeichen.
    leider funktionieren die formatierungen aus excel in vb.net nicht, weiß jemand wie ich zum gewünschten ergebnis komme?

    beispiel 1:

    VB.NET-Quellcode

    1. Dim zelle As Range
    2. zelle = xls_blatt.UsedRange.SpecialCells(XlCellType.xlCellTypeLastCell)
    3. xls_blatt.Range("D10", zelle).NumberFormat = "#.##0" 'Formatierung aus Excel funktioniert nicht

    leider ist hier das ergebnis 100000,0 hätte aber gerne 100.000

    beispiel 2:

    habe in einer zelle 12,12 stehen und möchte nun auf 12,1% kommen

    schon mal 1000 dank für eure hilfe! :thumbup:
    Also für Beispiel 1 reicht es NumberFormat durch NumberFormatLocal auszutauschen...aber egal wie ich es anstelle für Beispiel 2 krieg ich auch nur Mumpitz raus. Sinngemäß müßte NumberFormatLocal("0,0%") das Gewünschte erreichen. Aber irgendwie nimmt er die Nachkommastellen als Value bei mir gar nicht wahr...
    Bin da aber auch nicht so firm und wollte einfach mal antworten, weil sich die Interop-Pros ja nicht äußern. :)

    Gruß FatFire
    @FatFire

    Lösung zu Beispiel 2:

    Da es wirklich nicht geht ein % anzuhängen ohne das Komma um 100 zu verschieben bzw ich keine Lust hatte mir die betreffende Werte in einer Extraspalte umzurechnen - die Original zu löschen um dann die Extraspalte wieder an der Stelle einzufügen... phuu... hab ich einfach Datenbankabfrage verändert. Bekomme den Wert jetzt mit dem Komma um 2 Stellen nach links verschoben und formatiere dann einfach mit

    VB.NET-Quellcode

    1. xls_blatt.Range("I7", zelle).NumberFormatLocal = "#,0%"


    Nicht schön, aber funktioniert ;)
    Und nochmal Danke für den Tip mit .NumberFormatLocal

    Fritz :whistling: