¿Por qué falla macro desde macro principal?

Hola,
Estoy haciendo un largo problema en macros de excel, está compuesto por 3 macros. En la 1º de ellas no afectan datos de ninguna otra, pero en ella he declarado como public una matriz de datos que lleno de datos en esta macro y necesito utilizar en las siguientes. En la 2º utilizo la matriz de datos de la 1º, y a su vez he declarado como public otra matriz que utilizaré en la 3º. La 3º utiliza las 2 matrices de datos de las macros anteriores.
Al depender unas de otras, para hacerlo funcionar de forma que los datos de las matrices declaradas como public queden llenos en sus respectivas macros (y continúen llenos al pasar a la siguiente macro), he hecho una macro "principal" que llama a estas 3. Tengo dos problemas al respecto:
1. No sé si lo estoy haciendo bien, si es esto lo que tengo que hacer para que funcione, y por otro lado para llamarlas únicamente pongo en 3 líneas diferentes, los nombres de las 3 macros y nada más. No sé si debería pasarles algo por valor o no.
2. La primera macro al ejecutarla de forma independiente funciona perfectamente, de hecho los resultados se escriben en una hoja de cálculo y va perfecta. Sin embargo al ejecutarse (es la primera de las 3) desde la macro principal, me sale error '9' de ejecución (que dice que los subíndices están fuera del rango) en la 1º de las sentencias en la que introduzco un dato en la matriz de datos que he declarado como public y que necesito para las otras 2 macros.
-----------------------------------------
No copio el código porque es larguísimo en las 3 macros... Si no queda del todo claro lo que pretendo, a continuación explico brevemente de qué va el problema que resuelvo:
Es un juego (teoría de juegos) en el que dos jugadores pretenden controlar una serie de planetas. La 1º macro es para determinar las posibles estrategias de juego de cada jugador, las cuales introduzco en la matriz de estrategias. En la 2º macro calculo la tabla de utilidades que surge de todas las posibles combinaciones de parejas de estrategias del jugador 1 y del jugador 2; para lo cuál necesito la matriz de estrategias de la otra macro; y en esta a su vez genero una nueva matriz con las utilidades. Por último en la 3º aplico dominancias entre las utilidades, para eliminar estrategias dominadas y reducirlo lo máximo posible; por ello necesito utilizar la matriz de utilidades y también la de estrategias.
Si alguien puede ayudarme se lo agradecería muchísimo, es un trabajo importantísimo y se me está acabando el tiempo! Gracias!

1 respuesta

Respuesta
1
Habría que verel código para saber cual es el problema exacto. Por lo que describes te recomiendo una cosa.
En lugar de tener tres macros y llamarlas de forma secuancial en una cuarta macro fusiona las tres macros en una sola, así te evitas declarar las matrices compartidas, y podrás ver si tu error es debido a los datos que comparten. Si fusionando las tres macros te funciona todo bien, entonces el problema es cómo estás declarando las matrices o como las estás pasando entre unas y otras.
Si funcionando las macros sigue sin funcionar es posible que el error sea de otro tipo, algún acceso indebido, o un parámetro pasado a alguna función sin concordancia de tipos.
Sin ver el código no te puedo decir algo más concreto.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas