Zum Hauptinhalt springen

Wie konvertiert man Zahlen in Excel mit VBA in Wörter

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.

ZahlDie Worte
1einer
10zehn
100hundert
123einhundertdreiundzwanzig
1000eintausend
1000000eine Million
1000000000eine 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.