Cuestión : SpellNumber

¿Por qué cuando lo hace I '' SpellNumber (A1) '' él insertaron “Y” antes de los números más en gran parte de 10.000.000? ¿Es porque las células que está convirtiendo son formato de la moneda?? ¿Y por qué, si allí los peniques está implicado inserta “y” en minúsculas? ¡Ayuda! Thanks class= del

Respuesta : SpellNumber

Todo el código es otra vez incluido y hay dos arreglos,
el espacio en blanco vuelve el espacio en blanco
1 vuelve un singular del pund es decir

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:
Spellnumber de la función (numberRange como gama)
    Si numberRange = "" después
        spellnumber = ""
    
        spellnumber = Currency2Words (numberRange, “libras”, “peniques”)
    Terminar si
Terminar la función

Función Currency2Words (ByVal MyNumber, strUnits opcionales, strFrac opcional)
Temp dévil
Unidades déviles
Frac dévil
DecimalPlace dévil
Amortiguar la cuenta

    Si strUnits de IsMissing (strUnits) entonces = “dólares”
    Si strFrac de IsMissing (strFrac) entonces = “centavos”
    Lugar de ReDim (9) como secuencia
    Colocar (2) = “miles”
    Colocar (3) = “millones”
    Colocar (4) = “mil millones”
    Colocar (5) = “trillón”

         
    MyNumber = ajuste (str (MyNumber))
    DecimalPlace = InStr (MyNumber, “.")
    Si DecimalPlace > 0 entonces
        El Temp = se fue (mediados de (MyNumber, DecimalPlace + 1) y “00”, 2)
        Frac = ConvertTens (Temp)
        MyNumber = ajuste (izquierdo (MyNumber, DecimalPlace - 1))
    Terminar si

    Cuenta = 1
    Hacer mientras que "" <> de MyNumber
        Temp = ConvertHundreds (derecho (MyNumber, 3))
        Si unidades <> = Temp y lugar (cuenta) y unidades del "" del Temp entonces
        Si Len (MyNumber) > 3 entonces
          MyNumber = ido (MyNumber, Len (MyNumber) - 3)
       
          MyNumber = ""
       Terminar si
       Cuenta = cuenta + 1
    Lazo

    Unidades = ajuste (unidades) y ““
    Seleccionar el ajuste del caso (las unidades)
       Encajonar el ""
          Unidades = "" '“no” y strUnits
       Caso “uno”
          Las unidades = “una” y se fueron (los strUnits, Len (strUnits) - 1)
       Caso 
          Unidades = unidades y strUnits
    Extremo selecto
    Seleccionar el ajuste del caso (Frac)
       Encajonar el ""
          Frac = "" '“y no” y strFrac
       Caso “uno”
          Si unidades = "" después
            Frac = Frac y ““y strFrac
          
            Frac = “y uno” y se fueron (strFrac, Len (strFrac) - 1)
        Terminar si
       Encajonar 
          Si unidades = "" después
            Frac = Frac y ““y strFrac
          
            Frac = “y” y Frac y ““y strFrac
          Terminar si
    Terminar selecto

    Si unidades = "" después
        Currency2Words = Frac
    
        Currency2Words = unidades y Frac
    Terminar si
    Currency2Words = substituyen (ajuste (Currency2Words), “  “,” ")
Función del final

Función privada ConvertHundreds (ByVal MyNumber)
Resultado dévil como secuencia

    Si Val (MyNumber) = 0 entonces sale la función
    MyNumber = derecho (“000” y MyNumber, 3)

    'Centenares
    Si está ido (MyNumber, 1) <> “0” entonces
       Resultado = ConvertDigit (dejado (MyNumber, 1)) y “cientos”
    Terminar si

    'diez
    Si es mediados de (MyNumber, 2, 1) <> “0” entonces
       Resultado = resultado y ConvertTens (mediados de (MyNumber, 2))
    
       Resultado = resultado y ConvertDigit (mediados de (MyNumber, 3))
    Terminar si

    ConvertHundreds = ajuste (resultado)
Función del final

Función privada ConvertTens (ByVal MyTens)
Resultado dévil como secuencia

    ¿'Es el valor entre 10 y 19?
    Si Val (entonces dejado (MyTens, 1)) = 1
        Seleccionar el caso Val (MyTens)
            Caso 10: Resultado = “diez”
            Caso 11: Resultado = “once”
            Caso 12: Resultado = “doce”
            Caso 13: Resultado = “trece”
            Caso 14: Resultado = “catorce”
            Caso 15: Resultado = “quince”
            Caso 16: Resultado = “dieciséis”
            Caso 17: Resultado = “diecisiete”
            Caso 18: Resultado = “dieciocho”
            Caso 19: Resultado = “diecinueve”
            Caso 
        Extremo selecto
    
        '. si no está entre 20 y 99.
        Seleccionar el caso Val (se fue (MyTens, 1))
            Caso 2: Resultado = “veinte”
            Caso 3: Resultado = “treinta”
            Caso 4: Resultado = “cuarenta”
            Caso 5: Resultado = “cincuenta”
            Caso 6: Resultado = “sesenta”
            Caso 7: Resultado = “setenta”
            Caso 8: Resultado = “ochenta”
            Caso 9: Resultado = “noventa”
            Caso 
        Extremo selecto

        El 'convertido unos pone el dígito.
        Resultado = resultado y ConvertDigit (correctos (MyTens, 1))
    Terminar si

    ConvertTens = resultado
Función del final

Función privada ConvertDigit (ByVal MyDigit)
    Seleccionar el caso Val (MyDigit)
        Caso 1: ConvertDigit = “uno”
        Caso 2: ConvertDigit = “dos”
        Caso 3: ConvertDigit = “tres”
        Caso 4: ConvertDigit = “cuatro”
        Caso 5: ConvertDigit = “cinco”
        Caso 6: ConvertDigit = “seises”
        Caso 7: ConvertDigit = “siete”
        Caso 8: ConvertDigit = “ocho”
        Caso 9: ConvertDigit = “nueve”
        Caso: ConvertDigit = ""
    Extremo selecto
Función del final
Otras soluciones  
 
programming4us programming4us