Problema de control de Macro
Publicado por Cesar (6 intervenciones) el 23/01/2009 22:46:26
Hola a todos.
La verdad no sé si el título de mi problema está correctamente puesto, pero no se me ocurrió otro. En fin, mi problema es el siguiente:
(Lo describiré de manera muy abstracta, porque si coloco el código verdadero nadie me va a enteder, además que es muuuy largo y con muchas funciones y procedimientos.)
Por ejemplo tengo lo siguiente:
For i = 1 to 100000000
For j = 1 to 20000000
a = funcionX ( parametro1 , parametro2 , parametro3)
End j
End i
Supongamos que todas las variables están correctamente definidas y que existe una funcion llamada funcionX que está correctamente escrita y que recibe algunos parámetros definidos de antemano cuyos valores son aleatoreos. Sin embargo esta funcionX hace algunos cálculos matemáticos (invierte matrices entre otras cosas) Como los parámetros que le entrego son aleatoreos puede que se genere una matriz singular (no invertible) entonces la funcionX no puede entregar resultados y se queda "pegada" y las iteraciones no siguen avanzando (vale decir, " i " y " j " llegaron a un cierto valor cada uno y no se terminó el For por completo).
Ahora viene mi pregunta: ¿Cómo puedo hacer, si existe un error parecido al que acabo de explicar, para que las iteraciones sigan adelante hasta terminar por completo ambos For?
No importa que no entregue los valores para el caso en que la matriz sea no invertible, pero la idea es que en la siguiente iteración me entregue resultados si esque existen.
La idea es que no aparezca en la pantalla de VB la típica reseña que indica "error xx en tiempo de ejecución, división por cero" u otra similar y que se detenga el procedimiento.
Ya que debo realizar miles de iteraciones que demoran días de procesamiento mi idea es dejar un computador funcionando por ese tiempo y yo no preocuparme por problemas de este estilo y poder irme de vacaciones tranquilo y a la vuelta retomar los resultados.
En verdad no tengo muchos conocimientos al respecto, así que si alguien me puede ayudar se lo agradecería.
Espero haber sido lo suficientemente claro, Gracias
César.
La verdad no sé si el título de mi problema está correctamente puesto, pero no se me ocurrió otro. En fin, mi problema es el siguiente:
(Lo describiré de manera muy abstracta, porque si coloco el código verdadero nadie me va a enteder, además que es muuuy largo y con muchas funciones y procedimientos.)
Por ejemplo tengo lo siguiente:
For i = 1 to 100000000
For j = 1 to 20000000
a = funcionX ( parametro1 , parametro2 , parametro3)
End j
End i
Supongamos que todas las variables están correctamente definidas y que existe una funcion llamada funcionX que está correctamente escrita y que recibe algunos parámetros definidos de antemano cuyos valores son aleatoreos. Sin embargo esta funcionX hace algunos cálculos matemáticos (invierte matrices entre otras cosas) Como los parámetros que le entrego son aleatoreos puede que se genere una matriz singular (no invertible) entonces la funcionX no puede entregar resultados y se queda "pegada" y las iteraciones no siguen avanzando (vale decir, " i " y " j " llegaron a un cierto valor cada uno y no se terminó el For por completo).
Ahora viene mi pregunta: ¿Cómo puedo hacer, si existe un error parecido al que acabo de explicar, para que las iteraciones sigan adelante hasta terminar por completo ambos For?
No importa que no entregue los valores para el caso en que la matriz sea no invertible, pero la idea es que en la siguiente iteración me entregue resultados si esque existen.
La idea es que no aparezca en la pantalla de VB la típica reseña que indica "error xx en tiempo de ejecución, división por cero" u otra similar y que se detenga el procedimiento.
Ya que debo realizar miles de iteraciones que demoran días de procesamiento mi idea es dejar un computador funcionando por ese tiempo y yo no preocuparme por problemas de este estilo y poder irme de vacaciones tranquilo y a la vuelta retomar los resultados.
En verdad no tengo muchos conocimientos al respecto, así que si alguien me puede ayudar se lo agradecería.
Espero haber sido lo suficientemente claro, Gracias
César.
Valora esta pregunta


0