Tengo una variable "CERRAR" en una macro que quiero utilizar en algunos módulos y formularios la he declarado Public pero no fun

Tengo una variable "CERRAR" en una macro que quiero utilizar en algunos módulos y formularios, he probado al principio de la macro public CERRAR as String, pero cuando pongo un Msgbox en cualquier otro modulo o formulario me sale vacío, y claro cuando pongo un (if CERRAR="SI" then), no reconoce la variable "CERRAR" y se salta en if endif.

Agradeciendo de antemano vuestra ayuda, os saluda atentamente.

Alfredo.

Al haceros l pegunta me pone

Por favor introduce más detalles de tu pregunta en la descripción.

Pues no se que mas poner, creo que la pregunta es clara y diafana.

2 Respuestas

Respuesta
2

Para declararla Public debe ser fuera de la macro, al principio de un Modulo Estándar, no puede haber ninguna macro arriba de la declaración.

NOTA: En el modulo de un formulario no funciona.

Otra opción es pasarla por argumentos.

Salu2

Por cierto, dices que el MsgBox sale vació, eso sucede si no inicializas la variable, obviamente a parte de declararla debes inicializarla.

Te dejo un ejemplo rustico, para que entiendas que es lo que puede estar sucediendo:

Video demo

La variable debe inicializarse en algún momento antes de ser llamada.

Otra cosa, normalmente las variables publicas en Excel VBA suelen declararse e inicializarse en el evento Open del Workbook.

No estoy seguro, pero creo que cuando interactuas con otros libros, al cambiar el libro activo se borra la referencia de la memoria y las variables se limpian. Es lo malo de los lenguajes con Garbage Collector. No lo he probado pero por lógica imagino que eso sucede.

Respuesta
1

Para llamar la macro tiene que ser con Call CERRAR

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas