Excel verfügt nicht über eine Standardfunktion, die Zahlen als englische Wörter in einem Arbeitsblatt anzeigt, aber Sie können diese Funktion hinzufügen, indem Sie den folgenden SpellNumber-Funktionscode in ein VBA-Modul (Visual Basic for Applications) einfügen. Mit dieser Funktion können Sie Dollar- und Centbeträge in Wörter mit einer Formel konvertieren, sodass 22,50 als Twenty-Two Dollar und Fünfzig Cent gelesen werden. Dies kann sehr nützlich sein, wenn Sie Excel als Vorlage zum Drucken von Überprüfungen verwenden.
Wenn Sie numerische Werte in das Textformat konvertieren möchten, ohne sie als Wörter anzuzeigen, verwenden Sie stattdessen die TEXT-Funktion .
Hinweis: Microsoft stellt Programmierbeispiele nur zur Veranschaulichung zur Verfügung, ohne ausdrückliche oder stillschweigende Garantie. Dies schließt die stillschweigende Gewährleistung der Marktgängigkeit oder der Eignung für einen bestimmten Zweck ein, ist aber nicht darauf beschränkt. In diesem Artikel wird davon ausgegangen, dass Sie mit der Programmiersprache VBA und den Tools vertraut sind, die zum Erstellen und Debuggen von Prozeduren verwendet werden. Die Support-Techniker von Microsoft können Ihnen die Funktionalität eines bestimmten Verfahrens erklären. Sie ändern diese Beispiele jedoch nicht, um zusätzliche Funktionen bereitzustellen, oder erstellen Prozeduren, die Ihren spezifischen Anforderungen entsprechen.
Erstellen der SpellNumber-Funktion zum Konvertieren von Zahlen in Wörter
-
Verwenden Sie die Tastenkombination ALT + F11 , um den Visual Basic-Editor (VBE) zu öffnen.
Hinweis: Sie können auch auf den Visual Basic-Editor zugreifen, indem Sie im Menüband die Registerkarte "Entwickler" anzeigen.
-
Klicken Sie auf die Registerkarte Einfügen und dann auf Modul.
-
Kopieren Sie die folgenden Codezeilen.
Hinweis: Dieser Code wird als benutzerdefinierte Funktion (User Defined Function, UDF) bezeichnet und automatisiert die Konvertierung von Zahlen in Text im gesamten Arbeitsblatt.
Option Explicit 'Main Function Function SpellNumber(ByVal MyNumber) Dim Dollars, Cents, Temp Dim DecimalPlace, Count ReDim Place(9) As String Place(2) = " Thousand " Place(3) = " Million " Place(4) = " Billion " Place(5) = " Trillion " ' String representation of amount. MyNumber = Trim(Str(MyNumber)) ' Position of decimal place 0 if none. DecimalPlace = InStr(MyNumber, ".") ' Convert cents and set MyNumber to dollar amount. If DecimalPlace > 0 Then Cents = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & _ "00", 2)) MyNumber = Trim(Left(MyNumber, DecimalPlace - 1)) End If Count = 1 Do While MyNumber <> "" Temp = GetHundreds(Right(MyNumber, 3)) If Temp <> "" Then Dollars = Temp & Place(Count) & Dollars If Len(MyNumber) > 3 Then MyNumber = Left(MyNumber, Len(MyNumber) - 3) Else MyNumber = "" End If Count = Count + 1 Loop Select Case Dollars Case "" Dollars = "No Dollars" Case "One" Dollars = "One Dollar" Case Else Dollars = Dollars & " Dollars" End Select Select Case Cents Case "" Cents = " and No Cents" Case "One" Cents = " and One Cent" Case Else Cents = " and " & Cents & " Cents" End Select SpellNumber = Dollars & Cents End Function ' Converts a number from 100-999 into text Function GetHundreds(ByVal MyNumber) Dim Result As String If Val(MyNumber) = 0 Then Exit Function MyNumber = Right("000" & MyNumber, 3) ' Convert the hundreds place. If Mid(MyNumber, 1, 1) <> "0" Then Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred " End If ' Convert the tens and ones place. If Mid(MyNumber, 2, 1) <> "0" Then Result = Result & GetTens(Mid(MyNumber, 2)) Else Result = Result & GetDigit(Mid(MyNumber, 3)) End If GetHundreds = Result End Function ' Converts a number from 10 to 99 into text. Function GetTens(TensText) Dim Result As String Result = "" ' Null out the temporary function value. If Val(Left(TensText, 1)) = 1 Then ' If value between 10-19... Select Case Val(TensText) Case 10: Result = "Ten" Case 11: Result = "Eleven" Case 12: Result = "Twelve" Case 13: Result = "Thirteen" Case 14: Result = "Fourteen" Case 15: Result = "Fifteen" Case 16: Result = "Sixteen" Case 17: Result = "Seventeen" Case 18: Result = "Eighteen" Case 19: Result = "Nineteen" Case Else End Select Else ' If value between 20-99... Select Case Val(Left(TensText, 1)) Case 2: Result = "Twenty " Case 3: Result = "Thirty " Case 4: Result = "Forty " Case 5: Result = "Fifty " Case 6: Result = "Sixty " Case 7: Result = "Seventy " Case 8: Result = "Eighty " Case 9: Result = "Ninety " Case Else End Select Result = Result & GetDigit _ (Right(TensText, 1)) ' Retrieve ones place. End If GetTens = Result End Function ' Converts a number from 1 to 9 into text. Function GetDigit(Digit) Select Case Val(Digit) Case 1: GetDigit = "One" Case 2: GetDigit = "Two" Case 3: GetDigit = "Three" Case 4: GetDigit = "Four" Case 5: GetDigit = "Five" Case 6: GetDigit = "Six" Case 7: GetDigit = "Seven" Case 8: GetDigit = "Eight" Case 9: GetDigit = "Nine" Case Else: GetDigit = "" End Select End Function
-
Fügen Sie die Codezeilen in das Feld Modul1 (Code) ein.
-
Drücken Sie ALT+Q , um zu Excel zurückzukehren. Die SpellNumber-Funktion kann jetzt verwendet werden.
Hinweis: Diese Funktion funktioniert nur für die aktuelle Arbeitsmappe. Um diese Funktion in einer anderen Arbeitsmappe zu verwenden, müssen Sie die Schritte zum Kopieren und Einfügen des Codes in dieser Arbeitsmappe wiederholen.
Verwenden der SpellNumber-Funktion in einzelnen Zellen
-
Geben Sie die Formel =SpellNumber(A1) in die Zelle ein, in der eine geschriebene Zahl angezeigt werden soll, wobei A1 die Zelle ist, die die Zahl enthält, die Sie konvertieren möchten. Sie können den Wert wie =SpellNumber(22.50) auch manuell eingeben.
-
Drücken Sie die EINGABETASTE , um die Formel zu bestätigen.
Speichern der SpellNumber-Funktion in einer Arbeitsmappe
Excel kann keine Arbeitsmappe mit Makrofunktionen im standardmakrofreien Arbeitsmappenformat (.xlsx) speichern. Wenn Sie auf Datei > Speichern. Ein VB-Projektdialogfeld wird geöffnet. Klicken Sie auf Nein.
Sie können Ihre Datei als Excel-Macro-Enabled-Arbeitsmappe (XLSM) speichern, um die Datei im aktuellen Format beizubehalten.
-
Klicken Sie auf Datei > Speichern unter.
-
Klicken Sie auf das Dropdownmenü Dateityp , und wählen Sie Excel Macro-Enabled Arbeitsmappe aus.
-
Klicken Sie auf Speichern.