Microsoft Excel ist ein leistungsfähiges Werkzeug für die Arbeit mit Daten, einschließlich Zahlen. In einigen Fällen ist es jedoch besonders bei der Arbeit mit Texten und Berichten nützlich, Zahlen nicht nur anzuzeigen, sondern sie auch in Wörter zu konvertieren.
Zu diesem Zweck können Sie Visual Basic for Applications (VBA) verwenden, eine Programmiersprache, die direkt in Excel integriert ist. Damit können Sie ein Makro schreiben, das diese Konvertierung durchführt.
Das Konvertieren von Zahlen in Wörter kann in vielen Situationen nützlich sein, z. B. beim Erstellen von Rechnungen oder beim Drucken von Schecks. Es ermöglicht Ihnen, Dokumente für Menschen, die es nicht gewohnt sind, mit Zahlen zu arbeiten, verständlicher und lesbarer zu machen.
In diesem Artikel werden wir uns ansehen, wie Sie VBA verwenden, um Zahlen in Wörter zu konvertieren. Wir werden lernen, wie man ein Makro schreibt, das diese Transformation durchführt, und wie man es auf Zellen mit Zahlen in Excel anwendet.
Konvertieren von Zahlen in Excel in Wörter mithilfe von VBA
Zuerst müssen Sie den VBA-Editor öffnen, indem Sie in der Excel-Symbolleiste auf die Schaltfläche "Entwickler" klicken und "VBA-Editor" auswählen. Dann müssen Sie ein neues Modul erstellen, in dem wir unseren Code schreiben werden.
Sie können die folgende Funktion verwenden, um Zahlen in Wörter zu konvertieren:
| Function ConvertNumberToWords(ByVal MyNumber) |
| Dim Units As String |
| Untereinheiten als String dimmen |
| Dimmen Sie die Temperatur als Zeichenfolge |
| Dezimalstelle als Ganzzahl abdunkeln |
| Platz (9) als Zeichenfolge ändern |
| Platz(2) = " Tausend " |
| Platz (3) = " Million " |
| Platz (4) = " Milliarde " |
| Platz (5) = " Billion " |
| Wenn meine Nummer> 999999999999 Dann |
| Konvertierungsnummerwörter = "РезульТат слишком большой" |
| Exit-Funktion |
| Beenden, wenn |
| Wenn Trim(myNumber) = "", dann beenden Sie die Funktion |
| Wenn nicht IsNumeric(myNumber) Dann |
| Konvertierungsnummerwörter = "Не число" |
| Exit-Funktion |
| Beenden, wenn |
| Dezimalstelle = 0 |
| Meine Nummer = Trim(CStr (Meine Nummer)) |
| Wenn InStr(Meine Nummer, ".") > 0 Dann |
| Dezimalstelle = GetDigits (Mitte(Meine Nummer, InStr(Meine Nummer, ".") + 1)) |
| Meine Nummer = Trimmen (Links (Meine Nummer, InStr (Meine Nummer, ".") - 1)) |
| Beenden, wenn |
| Anzahl = 1 |
| Nummer wiederholen (1 bis Länge (meine Nummer) \ 3 + 1) |
| Für i = Länge (meine Nummer) \ 3 + 1 bis 2 Schritt -1 |
| numArr (Anzahl) = Val (Mitte (meine Nummer, i * 3 - 2, 3)) |
| Anzahl = Anzahl + 1 |
| Nächsten |
| numArr (1) = Wert (Links (Meine Nummer, (Länge (meine Nummer) Mod 3) + 1)) |
| Anzahl = 0 |
| Für i = Gebunden (numArr) an 1 Schritt -1 |
| Setze strString = Nichts |
| Wenn numArr (i) > 0 ist, dann |
| Zähler = 1 |
| ReDim strArr (1 bis 3) |
| Für jeden nStr In SNum |
| Wenn Zähler> numArr (i), dann beenden für |
| strArr(Zähler) = nStr |
| Zähler = Zähler + 1 |
| Nächsten |
| Wenn i = 1 Dann |
| Wenn numArr(i) > 0 Und numArr(i) < 10 Dann |
| strString = strString & "" & Erhalte(numArr(i)) |
| ElseIf numArr (i) = 0 Dann |
| strString = strString & " " |
| Anderes |
| strString = strString & "" & GetDigit(numArr(i)) |
| Beenden, wenn |
| Anderes |
| Wenn numArr (i) > 0 und numArr(I) < 10 Dann |
| strString = strString & ""& Stelle (numArr(i)) & Stelle(i) & "" & Stelle(numArr (i + 1)) |
| ElseIf numArr (i) = 0 Dann |
| strString = strString & "" & Erhalte(numArr (i + 1)) |
| Anderes |
| strString = strString & " " & Stelle (numArr(i)) & Stelle(i) & " " & Stelle(numArr(i + 1)) |
| Beenden, wenn |
| Beenden, wenn |
| ConvertNumberToWords = Zeichenkette & ConvertNumberToWords |
| Beenden, wenn |
| Nächstes i |
| Wenn Dezimalstelle > 0 Dann |
| Temp = GetTens (Links (Mitte (Meine Nummer, InStr(Meine Nummer, ".") + 1) & "00", 2)) |
| Dezimalstelle = GetDigit (Rechts (Mitte (Meine Nummer, InStr (Meine Nummer, ".") + 1) & "00", 1)) |
| strString = strString & " " & Temp & " " & Dezimalstelle |
| Beenden, wenn |
| Wenn ConvertNumberToWords <> "" Dann |
| ConvertNumberToWords = Trim(strString) & " " & ConvertNumberToWords |
| End If |
| End Function |
Nachdem Sie diese Funktion in einem VBA-Modul erstellt haben, können Sie sie in Excel verwenden, um Zahlen in Wörter zu konvertieren. Sie können beispielsweise eine Funktion in einer Formel in einer Zelle wie folgt aufrufen:
=ConvertNumberToWords(A1)
Wobei A1 die Zelle ist, die die zu konvertierende Zahl enthält. Das Ergebnis wird in einer Zelle mit der Formel angezeigt.
Das Konvertieren von Zahlen in Wörter in Excel mit VBA macht es daher einfach, Daten einfacher zu analysieren und zu lesen. Diese Funktion kann in verschiedenen Bereichen wie Finanzen, Buchhaltung und Analysen nützlich sein.
Verwenden von VBA zum Konvertieren von Zahlen in Wörter in Excel
Hier ist ein Beispiel für ein einfaches VBA-Skript, das Zahlen in Wörter konvertiert. Zuerst müssen Sie den VBA-Editor öffnen, indem Sie Alt + F11 drücken. Wählen Sie dann das Arbeitsblatt aus, in dem Sie die Zahlen konvertieren möchten, und fügen Sie den folgenden Code ein:
Dim cell As Range
Dim number As Variant
Dim result As String
For Each cell In Selection
If IsNumeric(number) Then
Function NumberToWords(ByVal number As Variant) As String
Dim units() As Variant
Dim tens() As Variant
Dim strNumber As String
Dim words As String
Dim tempValue As Double
Dim billions As Double, millions As Double
Dim thousands As Double, hundreds As Double
Dim tensUnits As Double
units = Array(Null, eins, zwei, drei,vier, fünf, sechs, sieben, acht, neun, zehn, elf, elf, zwölf, dreizehn, vierzehn, fünfzehn, siebzehn, achtzehn, neunzehn)
tens = Array("", "", "zwanzig", "dreißig", "vierzig", "fünfzig", "sechzig", "siebzig", "achtzig", "neunzig")
billions = Fix(tempValue / 1000000000)
tempValue = tempValue - billions * 1000000000
millions = Fix(tempValue / 1000000)
tempValue = tempValue - millions * 1000000
thousands = Fix(tempValue / 1000)
tempValue = tempValue - thousands * 1000
hundreds = Fix(tempValue / 100)
Tempwert = Tempwert - Hunderte * 100
Wenn Milliarden> 0 Dann
wörter = Wörter & Zahlwörter (Milliarden) & " миллиардов "
Wenn Millionen> 0 Dann
wörter = Wörter & Zahlwörter (Millionen) & " миллионов "
Wenn Tausende> 0 Dann
wörter = Wörter & Zahlwörter(Tausender) & " тысяч "
Wenn Hunderte> 0 Dann
wörter = Wörter & Einheiten (Hunderte) & " сто "
Wenn zehn Einheiten> 0 Dann
wörter = Wörter & Einheiten (Zehnereinheiten + 1)
words = words & tens(Fix(tensUnits / 10)) & " " & units(Fix(tensUnits Mod 10) + 1)
Nachdem Sie das Skript gespeichert und für den ausgewählten Zellbereich mit Zahlen ausgeführt haben, wird jede Zahl durch Wörter ersetzt, die dieser Zahl entsprechen.
Leider unterstützt Excel die automatische Konvertierung von Zahlen in Wörter durch integrierte Funktionen oder Formeln nicht. Mit VBA können Sie diese Funktionalität jedoch problemlos zu Excel-Tabellen hinzufügen und sie verständlicher und lesbarer machen.
Fügen Sie diesen Code in das Visual Basic-Editor-Modul ein (drücken Sie Alt + F11 in Excel) und können ihn dann über die Formel "=NumberToWords(A1)" aus einer Excel-Zelle aufrufen, wobei "A1" die Adresse der Zelle mit der zu konvertierenden Zahl ist. Auf diese Weise ist es einfach, Zahlen direkt in Excel-Formeln in Wörter umzuwandeln.
| Zahl | Die Worte |
|---|---|
| 1 | einer |
| 10 | zehn |
| 100 | hundert |
| 123 | einhundertdreiundzwanzig |
| 1000 | eintausend |
| 1000000 | eine Million |
| 1000000000 | eine Milliarde |
Die Verwendung von VBA zum Konvertieren von Zahlen in Wörter in Excel macht die Arbeit mit Daten einfacher, verständlicher und effizienter. Die entsprechenden Zahlen können jetzt verbal dargestellt werden, wodurch sie leichter zu verstehen und in anderen Berechnungen und Analysen der Daten verwendet werden können.
Vorteile der Verwendung von VBA zum Konvertieren von Zahlen in Wörter
- Flexibilität und Anpassbarkeit: Mit VBA können Sie eine eigene Funktion erstellen, die Ihren Anforderungen vollständig entspricht. Sie können die Formatierung anpassen und die Sprache auswählen, in der das Textäquivalent einer Zahl dargestellt wird.
- Automatisierung: Mithilfe von VBA können Sie ein Makro erstellen, das die Funktion zum Konvertieren von Zahlen in Wörter automatisch auf einen bestimmten Bereich von Zahlen in einer Excel-Tabelle anwendet. Dies spart Zeit und verringert die Wahrscheinlichkeit von Fehlern bei der Eingabe.
- Benutzerfreundlichkeit: Nachdem Sie eine Funktion zum Konvertieren von Zahlen in Wörter erstellt haben, genügt ein Mausklick oder ein Tastendruck, um eine Textdarstellung der Zahl zu erhalten. Es ist nicht notwendig, die Formel jedes Mal manuell einzugeben.
- Ausdehnungsfähigkeit: VBA bietet unbegrenzte Möglichkeiten, um die Funktionalität zu erweitern. Sie können zusätzliche Parameter aktivieren, die Fehlerbehandlung hinzufügen oder die Funktion an sich ändernde Anforderungen anpassen.
Die Verwendung von VBA zum Konvertieren von Zahlen in Wörter verbessert die Effizienz und Genauigkeit der Arbeit mit Zahlen in Excel. Dank der Flexibilität und Anpassbarkeit von VBA, der Automatisierung von Aufgaben und der Benutzerfreundlichkeit können Sie Zahlen schnell und einfach in ein Textformat konvertieren, was in verschiedenen Situationen nützlich sein kann, z. B. bei der Erstellung von Berichten oder Dokumentationen.