it-swarm.com.de

Was sind .NumberFormat-Optionen in Excel VBA?

Können Sie mir bitte mitteilen, welche Optionen für das .NumberFormat-Format in Excel VBA verfügbar sind? Wie Sie wissen, unterstützt Excel 2010 die folgenden Typen:

enter image description here

Ich weiß, dass wir zum Beispiel Textart einstellen können als:

.NumberFormat ="@"

oder für Nummer:

.NumberFormat = "0.00000"

Können Sie mir bitte mitteilen, welche anderen Optionen für Typen in VBA verfügbar sind?

42
user1760110

Beachten Sie, dass dies in Excel für Mac 2011 durchgeführt wurde, es sollte jedoch für Windows identisch sein

Makro:

Sub numberformats()
  Dim rng As Range
  Set rng = Range("A24:A35")
  For Each c In rng
    Debug.Print c.NumberFormat
  Next c
End Sub

Ergebnis:

General     General
Number      0
Currency    $#,##0.00;[Red]$#,##0.00
Accounting  _($* #,##0.00_);_($* (#,##0.00);_($* "-"??_);_(@_)
Date        m/d/yy
Time        [$-F400]h:mm:ss am/pm
Percentage  0.00%
Fraction    # ?/?
Scientific  0.00E+00
Text        @
Special     ;;
Custom      #,##0_);[Red](#,##0)

(Ich habe gerade einen zufälligen Eintrag für benutzerdefinierte ausgewählt)

65
doovers

Dank dieser Frage (und Antworten) habe ich einen einfachen Weg gefunden, die genaue NumberFormat-Zeichenfolge für praktisch jedes Format zu finden, das Excel bietet.


So erhalten Sie die NumberFormat-Zeichenfolge für ein beliebiges Excel-Zahlenformat


Schritt 1 : Legen Sie in der Benutzeroberfläche eine Zelle auf das NumberFormat fest, das Sie verwenden möchten.

I manually formatted a cell to Chinese (PRC) currency

In meinem Beispiel habe ich die chinesische Währung (PRC) aus den Optionen des Kombinationsfelds "Kontonummernformat" ausgewählt.

Schritt 2 : Erweitern Sie die Dropdown-Liste Zahlenformat und wählen Sie "Weitere Zahlenformate ...".

Open the Number Format dropdown

Schritt 3 : Klicken Sie auf der Registerkarte Anzahl unter Kategorie auf "Benutzerdefiniert".

Click Custom

Der Abschnitt "Beispiel" zeigt die von mir angewendete chinesische Währungsformatierung (VRC).

Das Eingabefeld "Type" enthält die NumberFormat-Zeichenfolge, die Sie programmgesteuert verwenden können.

In diesem Beispiel lautet das NumberFormat meiner chinesischen (PRC) Währungszelle wie folgt:

_ [$¥-804]* #,##0.00_ ;_ [$¥-804]* -#,##0.00_ ;_ [$¥-804]* "-"??_ ;_ @_ 

Wenn Sie diese Schritte für jedes NumberFormat ausführen, das Sie wünschen, dann gehört die Welt Ihnen.

Ich hoffe das hilft.

16

dovers gibt uns seine großartige Antwort und basierend darauf kann man es gerne verwenden 

public static class CellDataFormat
{
        public static string General { get { return "General"; } }
        public static string Number { get { return "0"; } }

        // Your custom format 
        public static string NumberDotTwoDigits { get { return "0.00"; } }

        public static string Currency { get { return "$#,##0.00;[Red]$#,##0.00"; } }
        public static string Accounting { get { return "_($* #,##0.00_);_($* (#,##0.00);_($* \" - \"??_);_(@_)"; } }
        public static string Date { get { return "m/d/yy"; } }
        public static string Time { get { return "[$-F400] h:mm:ss am/pm"; } }
        public static string Percentage { get { return "0.00%"; } }
        public static string Fraction { get { return "# ?/?"; } }
        public static string Scientific { get { return "0.00E+00"; } }
        public static string Text { get { return "@"; } }
        public static string Special { get { return ";;"; } }
        public static string Custom { get { return "#,##0_);[Red](#,##0)"; } }
}

In Excel können Sie einen Range.NumberFormat auf eine beliebige Zeichenfolge setzen, wie Sie dies bei der Formatauswahl "Benutzerdefiniert" finden würden. Im Wesentlichen haben Sie zwei Möglichkeiten:

  1. Allgemein für kein bestimmtes Format.
  2. Eine benutzerdefinierte formatierte Zeichenfolge wie "$ #, ## 0", um genau anzugeben, welches Format Sie verwenden.
4
DougM

Die .NET-Bibliothek EPPlus implementiert eine Konversation von der String-Definition zur eingebauten Nummer . Siehe Klasse ExcelNumberFormat :

internal static int GetFromBuildIdFromFormat(string format)
{
    switch (format)
    {
        case "General":
            return 0;
        case "0":
            return 1;
        case "0.00":
            return 2;
        case "#,##0":
            return 3;
        case "#,##0.00":
            return 4;
        case "0%":
            return 9;
        case "0.00%":
            return 10;
        case "0.00E+00":
            return 11;
        case "# ?/?":
            return 12;
        case "# ??/??":
            return 13;
        case "mm-dd-yy":
            return 14;
        case "d-mmm-yy":
            return 15;
        case "d-mmm":
            return 16;
        case "mmm-yy":
            return 17;
        case "h:mm AM/PM":
            return 18;
        case "h:mm:ss AM/PM":
            return 19;
        case "h:mm":
            return 20;
        case "h:mm:ss":
            return 21;
        case "m/d/yy h:mm":
            return 22;
        case "#,##0 ;(#,##0)":
            return 37;
        case "#,##0 ;[Red](#,##0)":
            return 38;
        case "#,##0.00;(#,##0.00)":
            return 39;
        case "#,##0.00;[Red](#,#)":
            return 40;
        case "mm:ss":
            return 45;
        case "[h]:mm:ss":
            return 46;
        case "mmss.0":
            return 47;
        case "##0.0":
            return 48;
        case "@":
            return 49;
        default:
            return int.MinValue;
    }
}

Wenn Sie eines dieser Formate verwenden, werden sie von Excel automatisch als Standardformat identifiziert.

0
ice1e0