Suma in Schreibschrift

Inhalte

Nachfolgend finden Sie eine fertige benutzerdefinierte Funktion in VBA, die eine beliebige Zahl übersetzt von 0 um 9 in seine textuelle Darstellung, dh in der Menge in Worten. Vor der Verwendung muss diese Funktion zu Ihrem Buch hinzugefügt werden. Dafür:

  1. drücken Sie die Tastenkombination ALT + F11um den Visual Basic-Editor zu öffnen
  2. Fügen Sie über das Menü ein neues leeres Modul hinzu Einfügen – Modul
  3. Kopieren Sie den Text dieser Funktion und fügen Sie ihn dort ein:
Funktion SUM(n As Double) As String Dim Nums1, Nums2, Nums3, Nums4 As Variant Nums1 = Array("", "one", "two", "three", "four", "five", "six", "sieben", "acht", "neun") Nums2 = Array("", "zehn", "zwanzig", "dreißig", "vierzig", "fünfzig", "sechzig", "siebzig", _ "achtzig ", "neunzig") Nums3 = Array("", "einhundert", "zweihundert", "dreihundert", "vierhundert", "fünfhundert", "sechshundert", "siebenhundert", _ " achthundert", "neunhundert") Nums4 = Array("", "eins", "zwei", "drei", "vier", "fünf", "sechs", "sieben", "acht", "neun ") Nums5 = Array("zehn", "elf", "zwölf", "dreizehn", "vierzehn", _ "fünfzehn", "sechzehn", "siebzehn", "achtzehn", "neunzehn") Wenn n < = 0 Then SUMWRITE = "zero" Exit Function End If 'Unterteile die Zahl mit Hilfe der Hilfsfunktion in Ziffern Class ed = Class(n, 1) dec = Class(n, 2) sot = Class(n, 3) tys = Class (n, 4) dectys = Class(n , 5) sottys = Class(n, 6) mil = Class(n, 7) decmil= Class(n, 8) 'check millions Select Case decmil Case 1 mil_txt = Nums5(mil ) & "Millionen " GoTo www Case 2 To 9 decmil_txt = Nums2(decmil) End Select Select Case mil Case 1 mil_txt = Nums1(mil) & "million " Case 2, 3, 4 mil_txt = Nums1(mil) & "million " Case 5 To 20 mil_txt = Nums1(mil) & "millions" Ende Wählen Sie www: sottys_txt = Nums3(sottys) ' prüfen Sie Tausende Select Case dectys Case 1 tys_txt = Nums5(tys) & "thousands " GoTo eee Case 2 To 9 dectys_txt = Nums2(dectys) End Select Select Case tys Case 0 If dectys > 0 Then tys_txt = Nums4(tys) & "thousands" Case 1 tys_txt = Nums4(tys) & "thousand" Case 2, 3, 4 tys_txt = Nums4(tys) & "thousands " Fall 5 bis 9 tys_txt = Nums4(tys) & "thousands" End Select If dectys = 0 And tys = 0 And sottys <> 0 Then sottys_txt = sottys_txt & "thousands" eee: sot_txt = Nums3(sot) 'check tens Select Case dec Case 1 ed_txt = Nums5(ed) GoTo rrr Case 2 To 9 dec_txt = Nums2(dec) End Select ed_txt = Nums1 (ed) rrr: 'bilde die letzte Zeile mit SUM IN SPEECH = decmil_ txt & mil_txt & sottys_txt & dectys_txt & tys_txt & sot_txt & dec_txt & ed_txt Ende Fu nction 'Hilfsfunktion zum Extrahieren der Anzahl der Stellen Private Function Class(M, I) Class = Int(Int(M - (10 ^ I) * Int(M / (10 ^ I))) / 10 ^ (I - 1)) Endfunktion    

Speichern Sie die Datei (wenn Sie Excel 2007 oder 2010 haben, muss der Dateityp makrofähig sein, dh xlsm-Format!) und kehren Sie zu Excel zurück. Jetzt können Sie die erstellte Funktion wie gewohnt in eine beliebige Zelle des Arbeitsblatts einfügen – über den Funktionsassistenten (Schaltfläche fx in Bearbeitungsleiste, Kategorie Benutzerdefiniert) oder einfach manuell in die Zelle eintippen und die Zelle mit dem Betrag als Argument angeben:

Wenn Sie dem empfangenen Text ein paar Cent hinzufügen müssen, können Sie eine etwas komplexere Konstruktion verwenden:

 u3d SUMME IN SCHREIBEN (A3) & ” reiben. „&TEXT((A3-INTEGER(A100))*00;“XNUMX″)&“Kop.“ 

u3d SUMME IN SCHREIBEN (A3) & ” reiben. „&TEXT((A3-INT(A100))*00;“XNUMX″)&“Kop.“

Dann sieht das Ergebnis der Funktion beispielsweise für die Zahl 35,15 wie folgt aus: „fünfunddreißig Rubel. 15 Kop.“

 

  • A more powerful version of the function with rubles and kopecks in / English from the PLEX add-on
  • Was sind Makros, wo man Makrocode einfügt, wie man sie benutzt

 

Hinterlassen Sie uns einen Kommentar