Verwendung von Zahlenformaten in Excel VBA
-
Implementieren der Eigenschaft
NumberFormat
für numerische Werte in VBA -
Den Typ des von einem VBA-Bereich verwendeten
NumberFormat
ermitteln
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