Ejecutar macro sin importar el nombre de la hoja

He creado una macro y me da error de depurar si cambio el nombre de la hoja. Usé el grabador de macro para crear una secuencia de operaciones que son siempre la misma. El caso es que cuando la cree la hice sobre una hoja que se llamaba "Hoja2" y si intento ejecutarla en otra hoja me da error.

Ej.

ActiveWorkbook. Worksheets("Hoja2"). AutoFilter. Sort. SortFields. Clear

Quisiera cambiar eso que pone "Hoja2" y que me cogiera el nombre de la hoja en la que estoy para que me ejecute la macro.

Respuesta
1

Para eso tiene que usar la Hoja Activa.

ActiveWorkbook. ActiveSheet. AutoFilter. Sort. SortFields. Clear

Así quedaría. Sustituya todo su código siguiendo ese esquema; donde ponga

Worksheets("Hoja2")

escriba

ActiveSheet

1 respuesta más de otro experto

Respuesta
1

El nombre de la hoja siempre variara pero el indice no.. si es la primera hoja que creaste sera 1 y quedaría tu código así

ActiveWorkbook. Worksheets(1). AutoFilter. Sort. SortFields. Clear

Y aunque cambie el nombre de la hoja el indice siempre sera 1

O también la otra solución que es más factible

ActiveWorkbook. ActiveSheet. AutoFilter. Sort. SortFields. Clear

De esa forma la macro se ejecuta en la hoja activa. Sin importar su nombre.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas