Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/10/2010, 10:24
Avatar de hugo180486
hugo180486
 
Fecha de Ingreso: septiembre-2007
Mensajes: 199
Antigüedad: 16 años, 8 meses
Puntos: 3
iif Loco Sabran Por que?

Buenas Tardes me ha surgido una duda sobre el iif, por un error que me da que no me debiera de dar segun yo...

Ok aclaro esto me sucedion en VBA (En Excel 2003) no en VB no lo eh probado, pero como son muy similares pienso que pasaria igual de todos modos luego me sercioro...

Sintaxis de iif: iif(Expresion, TruePart, FalsePart)

Estamos deacuerdo que cuando hacemos esto dValor = 0/0 Nos tira un error de Overflow verdad?, bueno ahora explico lo que sucede

Código vb:
Ver original
  1. Dim dValor as double
  2.  
  3. dValor = 5
  4.  
  5. dValor = iif(dValor = 5, 0/0, 5/5)
  6. '// Si hicieramos esto es claro que nos tiraria el error de overflow...
  7.  
  8. dvalor = iif(Not dValor = 5, 0/0, 5/5)
  9. '// A esto es lo que  me refiero, que independientemente que la division 0/0 este
  10. '// en TruePart o FalsePart, de todos modos me tira el error de Overflow, como que
  11. '// el Visual Basic no deja hacer este tipo de operacion (0/0) dentro de un iif,
  12. '// Independientemente de que se haga o no se haga...

Espero no ser el unico que le pase, alguien sabe en realidad por que sucede esto?, no se alguna explicacion como por ejemplo que cuando se evaluan opercaiones dentro del iif las 2 se hacen, y solo se presenta el resultado final, el de la TruePart o FalsePart...

Espero que alguien sepa lo que sucede en realidad, Gracias de antemano....

Saludos....