Εάν χρειάστηκε ποτέ να εμφανίσετε έναν αριθμό γραμμένο ως κείμενο, πιθανότατα ανακαλύψατε ότι το Excel δεν προσφέρει μια τέτοια λειτουργία. Όταν το Excel αποτυγχάνει να παραδώσει, είναι συχνά δυνατό να διορθωθεί η ανεπάρκεια χρησιμοποιώντας VBA. Εδώ είναι μια συνάρτηση VBA, που ονομάζεται SPELLDOLLARS , που μπορείτε να χρησιμοποιήσετε σε τύπους φύλλων εργασίας.
Παραδείγματα Excel
Εδώ είναι μερικά παραδείγματα SPELLDOLLARS.
Ο κώδικας VBA
Για να χρησιμοποιήσετε αυτόν τον κωδικό, πατήστε Alt+F11 για να ενεργοποιήσετε το Visual Basic Editor. Στη συνέχεια, επιλέξτε Εισαγωγή → Μονάδα για να εισαγάγετε μια νέα μονάδα VBA. Αντιγράψτε τον κώδικα και επικολλήστε τον στη νέα μονάδα.
Συνάρτηση SPELLDOLLARS(κελί) Ως παραλλαγή
' Επιστρέφει μια τιμή, γραμμένη με λέξεις
Αδύναμα δολάρια ως κορδόνι, σεντ ως κορδόνι
Dim TextLen As Long, Pos As Long
Dim Temp As String
Dim iHundreds As Long, iTens As Long, iOnes As Long
Dim Ones As Variant, Teens As Variant, Tens As Variant
Dim Units (2 έως 5) Ως συμβολοσειρά
Dim bHit As Boolean, NegFlag As Boolean
' Είναι μη αριθμητικό ή κενό κελί;
Αν δεν είναι αριθμητικό(κελί) Ή κελί = "" Τότε
SPELLDOLLARS = CVERr(xlErrValue)
Λειτουργία εξόδου
Τέλος εαν
«Είναι αρνητικό;
If cell < 0="" then="" negflag="True" cell="Abs(cell)" end="" if="" dollars="Format(cell,"###0.00")="" textlen="Len(Δολάρια)" -="" 3="" '="" is="" it="" too="" large?="" if="" textlen=""> 15 Τότε
SPELLDOLLARS = CVERr(xlErrNum)
Λειτουργία εξόδου
Τέλος εαν
«Κάνε τα σεντς
Σεντ = Δεξιά (Δολάρια, 2) & "/100 Δολάρια"
Αν κελί < 1="" then="" spelldollars="Cents" exit="" function="" end="" if="" dollars="Left(Dollars," textlen)="" ones="Array( ""," "ένα",="" "δύο",="" "τρεις",="" "τέσσερα",="" _="" "πέντε",="" "έξι",="" “seven”,="" "eight",="" "nine")="" teens="Array("Ten"," "eleven",="" "twelve",="" "thirteen",= "" "δεκατέσσερα",="" _="" "δεκαπέντε",="" "δεκαέξι",="" "δεκαεπτά",="" "δεκαοκτώ",="" "δεκαεννέα")="" δεκάδες= "Array(""," "",="" "είκοσι",="" "τριάντα",="" "σαράντα",="" "πενήντα",="" _="""sixty",="" "seventy",="" "ighty",="" "nenety")="" units(2)=""Thousand"" units(3)=""Million"" units( 4)=""Δισ."" μονάδες(5)=""Τρισεκατομμύρια"" temp="""" for="" pos="15" to="" 3="" step="" -3="" if="" textlen="">= Θέση - 2 Στη συνέχεια
bHit = Λάθος
If TextLen >= Pos Τότε
iHundreds = Asc(Mid$(Dollars, TextLen - Pos + 1, 1)) - 48
Αν iHundreds > 0 Τότε
Temp = Temp & " " & Ones (iHundreds) & " Hundred"
bHit = Αλήθεια
Τέλος εαν
Τέλος εαν
iTens = 0
iOnes = 0
If TextLen >= Pos - 1 Τότε
iTens = Asc(Mid$(Dollars, TextLen - Pos + 2, 1)) - 48
Τέλος εαν
Αν TextLen >= Θέση - 2 Τότε
iOnes = Asc(Mid$(Dollars, TextLen - Pos + 3, 1)) - 48
Τέλος εαν
Αν iTens = 1 Τότε
Temp = Temp & “ “ & Teens(iOnes)
bHit = Αλήθεια
Αλλού
Αν iTens >= 2 Τότε
Θερμοκρασία = Θερμοκρασία & " " & Δεκάδες (iTens)
bHit = Αλήθεια
Τέλος εαν
Αν iOnes > 0 Τότε
Αν iTens >= 2 Τότε
Θερμοκρασία = Θερμοκρασία & "-"
Αλλού
Θερμοκρασία = Θερμοκρασία & " "
Τέλος εαν
Temp = Temp & Ones (iOnes)
bHit = Αλήθεια
Τέλος εαν
Τέλος εαν
Αν bHit And Pos > 3 Τότε
Θερμοκρασία = Θερμοκρασία & " " & Μονάδες (Θέση 3)
Τέλος εαν
Τέλος εαν
Επόμενη Θέση
SPELLDOLLARS = Περικοπή (Θερμοκρασία) & "και " & Σεντ
Αν NegFlag Τότε SPELLDOLLARS = "(" & SPELLDOLLARS & ")"
Λειτουργία τερματισμού