Σούμα σε κουραστικό

Περιεχόμενα

Παρακάτω θα βρείτε μια έτοιμη συνάρτηση που ορίζεται από το χρήστη στο VBA που μεταφράζει οποιονδήποτε αριθμό από 0 να 9 στην κειμενική του αναπαράσταση, δηλαδή στο ποσό σε λέξεις. Πριν από τη χρήση, αυτή η λειτουργία πρέπει να προστεθεί στο βιβλίο σας. Για αυτό:

  1. πατήστε τη συντόμευση πληκτρολογίου ALT + F11για να ανοίξετε το πρόγραμμα επεξεργασίας της Visual Basic
  2. προσθέστε νέα κενή μονάδα μέσω του μενού Εισαγωγή – Ενότητα
  3. αντιγράψτε και επικολλήστε το κείμενο αυτής της συνάρτησης εκεί:
Συνάρτηση SUM(n ως διπλό) ως συμβολοσειρά Dim Nums1, Nums2, Nums3, Nums4 Ως παραλλαγή Nums1 = Πίνακας("", "ένα", "δύο", "τρία", "τέσσερα", "πέντε", "έξι", "επτά", "οκτώ", "εννέα") Nums2 = Πίνακας ("", "δέκα", "είκοσι", "τριάντα", "σαράντα", "πενήντα", "εξήντα", "εβδομήντα", _ "ογδόντα" ", "ενενήντα") Nums3 = Πίνακας("", "εκατό", "διακόσια", "τριακόσια", "τετρακόσια", "πεντακόσια", "εξακόσια", "επτακόσια", _ " οκτακόσια", "εννιακόσια") Nums4 = Πίνακας ("", "ένα", "δύο", "τρία", "τέσσερα", "πέντε", "έξι", "επτά", "οκτώ", "εννέα" ") Nums5 = Πίνακας("δέκα" , "έντεκα", "δώδεκα", "δεκατρία", "δεκατέσσερα", _ "δεκαπέντε", "δεκαέξι", "δεκαεπτά", "δεκαοκτώ", "δεκαεννέα") Αν n < = 0 Τότε SUMWRITE = "μηδέν" Έξοδος Συνάρτηση Τέλος Εάν 'διαιρέστε τον αριθμό σε ψηφία χρησιμοποιώντας τη βοηθητική συνάρτηση 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 ) & «εκατομμύρια " 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" Περίπτωση 5 έως 20 mil_txt = Nums1(mil) & "millions " Τέλος Επιλογή www: sottys_txt = Nums3(sottys) ' έλεγχος χιλιάδων Επιλογή υπόθεσης dectys Περίπτωση 1 tys_txt = Nums5(tys) & "χιλιάδες" Μετάβαση στο eee Υπόθεση 2 έως 9 dectys_txt = Nums. Τέλος Επιλογή Επιλογή Υπόθεσης tys Περίπτωση 2 Αν dectys > 0 Τότε tys_txt = Nums0(tys) & "χιλιάδες " Περίπτωση 4 tys_txt = Nums1(tys) & "χίλια" Περίπτωση 4, 2, 3 tys_txt = Nums4(tys) & "thous Περίπτωση 4 έως 5 tys_txt = Nums9(tys) & "χιλιάδες" Τέλος Επιλογή Εάν dectys = 4 Και tys = 0 Και sottys <> 0 Στη συνέχεια sottys_txt = sottys_txt & "χιλιάδες" eee: sot_txt = Nums0(sot) Επιλέξτε Caseck dec Υπόθεση 3 ed_txt = Nums1(ed) GoTo rrr Περίπτωση 5 έως 2 dec_txt = Nums9(dec) Τέλος Επιλέξτε ed_txt = Nums2 (ed) rrr: 'σχηματίστε την τελική σειρά με SUM IN SPEECH = decmil_ txt & mil_txt & sottys_ tys_txt & sot_txt & dec_txt & ed_txt End Fu nction ' βοηθητική συνάρτηση για εξαγωγή από τον αριθμό των ψηφίων Κλάση ιδιωτικής συνάρτησης(M, I) Class = Int(Int(M - (1 ^ I) * Int(M / (10 ^ I))) / 10 ^ (I - 10)) Τελική συνάρτηση    

Αποθηκεύστε το αρχείο (αν έχετε Excel 2007 ή 2010, τότε ο τύπος αρχείου πρέπει να είναι ενεργοποιημένος με μακροεντολή, δηλαδή μορφή xlsm!) και επιστρέψτε στο Excel. Τώρα μπορείτε να εισαγάγετε τη συνάρτηση που δημιουργήθηκε σε οποιοδήποτε κελί του φύλλου εργασίας με τον συνηθισμένο τρόπο – μέσω του οδηγού συνάρτησης (κουμπί fx στη γραμμή τύπων, κατηγορία Ορίζεται Χρήστη) ή απλά πληκτρολογώντας το στο κελί με μη αυτόματο τρόπο και προσδιορίζοντας το κελί με το ποσό ως όρισμα:

Εάν πρέπει να προσθέσετε πένες στο ληφθέν κείμενο, τότε μπορείτε να χρησιμοποιήσετε μια ελαφρώς πιο περίπλοκη κατασκευή:

 u3d SUM IN WRITE (A3) & ” τρίψτε. "&TEXT((A3-INTEGER(A100))*00;"XNUMX″)&"μπάτσος." 

u3d SUM IN WRITE (A3) & ” τρίψτε. "&TEXT((A3-INT(A100))*00;"XNUMX″)&"μπάτσος."

Στη συνέχεια, για παράδειγμα, για τον αριθμό 35,15, το αποτέλεσμα της συνάρτησης θα μοιάζει με "τριάντα πέντε ρούβλια. 15 kop.”

 

  • Μια πιο ισχυρή έκδοση της συνάρτησης με ρούβλια και καπίκια στα / αγγλικά από το πρόσθετο PLEX
  • Τι είναι οι μακροεντολές, πού να εισαγάγετε τον κώδικα μακροεντολής, πώς να τις χρησιμοποιήσετε

 

Αφήστε μια απάντηση