Fråga : SpellNumber

Why, när I '' SpellNumber (A1) '' gör det, sätter in ”OCH” för numrerar större än 10.000.000? Är det, därför att cellerna som det konverterar, är valuta formaterar?? Och why, om där är encentmynt involverat, det sätter in ”och” i lowercase? Hjälp! Thanks " klar "

Svar : SpellNumber

Igen alla kodifierar är inklusive, och det finns två knipor,
tomma tomma retur
1 går en punddvs. ental tillbaka

Chris
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
Fungera spellnumber (numberRange som spänner)
    Om numberRange = "" därefter
        spellnumber = "",
    Annars
        spellnumber = Currency2Words (numberRange, ”dunkar”, ”encentmynt”),
    Avsluta om
Avsluta fungerar

Fungera Currency2Words (ByVal MyNumber, valfria strUnits, valfri strFrac)
Dunkla vikarier
Dunkla enheter
Dunkla Frac
Dunkla DecimalPlace
Dunkel räkning

    Om IsMissing (strUnits) därefter strUnits = ”dollar”,
    Om IsMissing (strFrac) därefter strFrac = ”Cents”,
    ReDim förlägger (9) som stränger
    Förlägga (2) = ”tusen”,
    Förlägga (3) = ”miljoner”,
    Förlägga (4) = ”miljarden”,
    Förlägga (5) = ”triljonen”,

         
    MyNumber = klippning (stren (MyNumber))
    DecimalPlace = InStr (MyNumber, ”. ”)
    Om DecimalPlace > 0 därefter
        Vikarier = lämnat (mitt- (MyNumber, DecimalPlace + 1) & ”00”, 2)
        Frac = ConvertTens (vikarie)
        MyNumber = lämnad, klippning ((MyNumber, DecimalPlace - 1))
    Avsluta om

    Räkning = 1
    Gör stundMyNumber <> "",
        Vikarier = ConvertHundreds (rätten (MyNumber, 3))
        Om enheter <> = vikarier för vikarie"" därefter & förlägger (räkningen) & enheter
        Om Len (MyNumber) > 3 därefter
          MyNumber = lämnat (MyNumber, Len (MyNumber) - 3)
       Annars
          MyNumber = "",
       Avsluta om
       Räkning = räkning + 1
    Kretsa

    Enheter = klippning (enheter) & ””,
    Vald fallklippning (enheter)
       Fall"",
          Enheter = "" '”inte” & strUnits
       Fall ”ett”,
          Enheter = ”en” & lämnat (strUnits, Len (strUnits) - 1)
       Fall annars
          Enheter = enheter & strUnits
    Avsluta valt
    Välj fallklippning (Frac)
       Case "",
          Frac = "" '”och inte” & strFrac
       Fall ”ett”,
          Om enheter = "" därefter
            Frac = Frac & ””& strFrac
          Annars
            Frac = ”och en” & lämnat (strFrac, Len (strFrac) - 1)
        Avsluta om
       Case annars
          Om enheter = "" därefter
            Frac = Frac & ””& strFrac
          Annars
            Frac = ”och” & Frac & ””& strFrac
          Avsluta om
    Avsluta valt

    Om enheter = "" därefter
        Currency2Words = Frac
    Annars
        Currency2Words = enheter & Frac
    Avsluta om
    Currency2Words = byter ut (klippning (Currency2Words), ”  ”,” ”)
Avsluta fungerar

Privat fungera ConvertHundreds (ByVal MyNumber)
Dunkelt resultat som stränger

    Om Val (MyNumber) = 0 går ut därefter, fungera
    MyNumber = högert (”000” & MyNumber, 3)

    'Hundreds
    Om lämnad (MyNumber, 1) <> ”0” därefter
       Resultat = lämnade, ConvertDigit ((MyNumber, 1)) & ”hundra”,
    Avsluta om

    'tio
    Om mitt- (MyNumber, 2, 1) <> ”0” därefter
       Resultat = mitt-, resultat & ConvertTens ((MyNumber, 2))
    Annars
       Resultat = mitt-, resultat & ConvertDigit ((MyNumber, 3))
    Avsluta om

    ConvertHundreds = klippning (resultatet)
Avsluta fungerar

Privat fungera ConvertTens (ByVal MyTens)
Dunkelt resultat som stränger

    'Är värderar mellan 10 och 19?
    Om lämnade, Val ((MyTens, 1)) = 1 därefter
        Välj fallet Val (MyTens)
            Fall 10: Resultat = ”tio”,
            Fall 11: Resultat = ”elva”,
            Fall 12: Resultat = ”tolv”,
            Fall 13: Resultat = ”tretton”,
            Fall 14: Resultat = ”fjorton”,
            Fall 15: Resultat = ”femton”,
            Fall 16: Resultat = ”sexton”,
            Fall 17: Resultat = ”sjutton”,
            Fall 18: Resultat = ”en arton”,
            Fall 19: Resultat = ”nitton”,
            Fall annars
        Avsluta valt
    Annars
        '. annorlunda det är mellan 20 och 99.
        Välj fallet lämnade, Val ((MyTens, 1))
            Fall 2: Resultat = ”tjugo”,
            Fall 3: Resultat = ”trettio”,
            Fall 4: Resultat = ”Forty”,
            Fall 5: Resultat = ”femtio”,
            Fall 6: Resultat = ”sextio”,
            Fall 7: Resultat = ”sjuttio”,
            Fall 8: Resultat = ”åttio”,
            Fall 9: Resultat = ”nittio”,
            Fall annars
        Avsluta valt

        'Omvänden en förlägger siffran.
        Resultat = resultat & ConvertDigit (rätten (MyTens, 1))
    Avsluta om

    ConvertTens = resultat
Avsluta fungerar

Privat fungera ConvertDigit (ByVal MyDigit)
    Välj fallet Val (MyDigit)
        Fall 1: ConvertDigit = ”en”,
        Fall 2: ConvertDigit = ”två”,
        Fall 3: ConvertDigit = ”tre”,
        Fall 4: ConvertDigit = ”fyra”,
        Fall 5: ConvertDigit = ”fem”,
        Fall 6: ConvertDigit = ”sex”,
        Fall 7: ConvertDigit = ”sju”,
        Fall 8: ConvertDigit = ”åtta”,
        Fall 9: ConvertDigit = ”nio”,
        Fall annars: ConvertDigit = "",
    Avsluta valt
Avsluta fungerar
Andra lösningar  
 
programming4us programming4us