Visual Basic para Aplicaciones - programa

Life is soft - evento anual de software empresarial
 
Vista:

programa

Publicado por Boris (1 intervención) el 30/06/2010 22:30:15
Hola estoy realizando este programa para escribir la suma de cinco numeros aletorios por el indice es decir el primer numero por 1 el segundo por dos ...
el numero aleatorio lo defini de la fomra que aparece. pero al compilarlo me sale no coinciden los tipos me podrían ayudar a corregir tal erro y explicarme porque sale eso
saludos

Sub antitetica()
'
' antitetica Macro
'
' Acceso directo: CTRL+l
'


Dim h As Integer
Dim b, c As Double

b = 0
For i = 1 To 5
a = "=-LN(RAND())"
b = b + i * a


Next i
ActiveWorkbook.Sheets("Hoja2").Cells(7, 5).Value = b

End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JuanC

RE:programa

Publicado por JuanC (565 intervenciones) el 01/07/2010 02:18:03
no coinciden los tipos porque la variable 'a' es de tipo Variant (no fue declarada
explícitamente) y al asignar
a = "=-LN(RAND())"
'a' pasa a ser de tipo String
entonces al intentar multiplicar 'i * a' se genera el error de tipos
b = b + i * a
estás intentando multiplicar un número con un texto

deberías remplazar
a = "=-LN(RAND())"
por
a = Log(Rnd)

Saludos, desde Baires, JuanC

PD: las variables 'b' e 'i' también son de tipo Variant
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar