Verwendung von Zahlenformaten in Excel VBA

Glen Alfaro 30 Januar 2023
  1. Implementieren der Eigenschaft NumberFormat für numerische Werte in VBA
  2. Den Typ des von einem VBA-Bereich verwendeten NumberFormat ermitteln
Verwendung von Zahlenformaten in Excel VBA

Zahlen kommen in unserem täglichen Leben in unterschiedlichen Formen vor. Wir haben Daten, Preise, Prozentsätze, Brüche, Dezimalzahlen usw. Sie mögen alle unterschiedlich aussehen, aber sie alle bedeuten einen Wert.

Dasselbe gilt für Excel, wir können mit verschiedenen Zahlenformaten umgehen. Wir können die Datentypen Date und Time verwenden, wenn es um Zeit und Datum geht, während wir Prozent verwenden können, wenn wir mit Prozentsätzen arbeiten.

Dieser Artikel demonstriert die Eigenschaft NumberFormat, um uns dabei zu helfen, Zahlen in unserer Excel-VBA-Praxis zu verwenden und angemessen damit umzugehen.

Implementieren der Eigenschaft NumberFormat für numerische Werte in VBA

Dieser Abschnitt verwendet die Eigenschaft NumberFormat, um die Zahlenformatierung in einer Zelle zu ändern.

Syntax:

Range.NumberFormat = [FormatCodes]

Parameter:

Range Der zu formatierende Bereich
[FormatCodes] Vorgegebene Zeichenketten, die darstellen, welche Art von Zahlenformat verwendet werden soll.

[format codes] Matrix:

Formatname Code formatieren Beispiel Beschreibung
—————– ——————————————————– —————– ——————————————————
Allgemein General 1234567.89 zeigt die Nummer ohne bestimmtes Format an
Währung $#,##0.00 $1,234,567.89 Anzeige als allgemeine Geldwerte
Nummer 0 1234567.89 Format zeigt die Nummer genau so an, wie sie ist
Wissenschaftlich 0.00E+00 1.23E+06 Konvertieren Sie die Zahl in das Exponentialformat
Buchhaltung _($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_) $123.00 display the number used in Buchhaltung
Datum m/d/yy 11/23/2021 Seriennummern von Datum und Uhrzeit anzeigen
Zeit [$-F400]h:mm:ss am/pm 12:00:03 AM Seriennummern von Datum und Uhrzeit anzeigen
Prozentsatz 0.00% 5.23 % zeigt den Wert in Prozentform an
Fraktion # ?/? 1/4 zeigt den Wert als Bruchform an
Speziell ;; 000-00-0000 Formate, die für Listen- und Datenbankwerte verwendet werden

Das virtuelle Arbeitsblatt Sheet1 sind die referenzierten Werte, die in allen Beispielen unten für die folgenden Beispielcodes verwendet werden.

Blatt1:

 |    A    |      B      |      C    |
1| 1234.56 | 11/23/2021  | 93249812  |
2| 5       | 0.00004     | 0.25      |

Der folgende Codeblock gibt die Formatierung General aus:

Sub FormatGeneral()
Range("A1").NumberFormat = "General"
Debug.Print Range("A1").Text
End Sub

FormatGeneral Ausgabe:

1234.56 

Der folgende Codeblock gibt die Formatierung Currency aus:

Sub FormatCurrency()
Range("C1").NumberFormat = "$#,##0.00"
Debug.Print Range("C1").Text
End Sub

General Ausgabe:

$93,249,812.00

Der folgende Codeblock gibt die Formatierung Scientific aus:

Sub FormatScientific()
Range("C1").NumberFormat = "0.00E+00"
Debug.Print Range("C1").Text
End Sub

FormatScientific Ausgabe:

9.32E+07

Der folgende Codeblock gibt die Formatierung Accounting aus:

Sub FormatAccounting()
Range("A1").NumberFormat = "_($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_)"
Debug.Print Range("A1").Text
End Sub

FormatAccounting-Ausgabe:

 $ 1,234.56 

Der folgende Codeblock gibt die Formatierung Date aus:

Sub FormatDate()
Range("A2").NumberFormat = "m/d/yy"
Debug.Print Range("A2").Text
End Sub

FormatDate-Ausgabe:

1/5/00

Der folgende Codeblock gibt die Formatierung Zeit aus:

Sub FormatTime()
Range("B2").NumberFormat = "$-F400]h:mm:ss am/pm"
Debug.Print Range("B2").Text
End Sub

FormatTime-Ausgabe:

12:00:03 AM

Der folgende Codeblock gibt die Formatierung Prozent aus:

Sub FormatPercentage()
Range("A1").NumberFormat = "0.00%"
Debug.Print Range("A1").Text
End Sub

FormatPercentage Ausgabe:

123456.00%

Der folgende Codeblock gibt die Formatierung Fraction aus:

Sub FormatFraction()
Range("C2").NumberFormat = "# ?/?"
Debug.Print Range("C2").Text
End Sub

FormatFraction-Ausgabe:

1/4

Den Typ des von einem VBA-Bereich verwendeten NumberFormat ermitteln

Wir haben den formatierten Wert des angegebenen Bereichs in den obigen Beispielen zurückgegeben. Wir erhalten den Formatierungstyp, der im angegebenen Bereich in diesem Abschnitt verwendet wird.

Syntax:

Range.NumberFormat

Parameter:

Range Der Zellbereich zum Abrufen des Formatierungstyps

Immer noch Bezug nehmend auf Sheet1, zeigen die folgenden Beispiel-Codeblöcke die Rückgabe des Formatierungstyps, der von dem angegebenen Bereich verwendet wird.

Sub GetFormattingType()
Debug.Print Range("B1").NumberFormat
End Sub

GetFormattingType-Ausgabe:

m/d/yyyy