La macro de Excel no va en el orden que se supone que debe hacerlo

La macro de Excel no va en el orden que se supone que debe hacerlo

He escrito una macro que se supone que ejecuta un complemento en cada hoja de trabajo. El complemento es un complemento específico de Sage. ¿Estoy seguro de que las claves de envío deberían funcionar con cualquier clave de envío que introduzca? Sin embargo, ejecuta mi prueba "agregar texto" en todas las hojas, vuelve a la hoja activa original y luego ejecuta el complemento tantas veces como el recuento de hojas, todo en la hoja activa. ¿También necesito agregar algo para que omita las hojas de trabajo ocultas...? Por favor ayuda.

Sub CountSheets()

Dim ws As Worksheet

Dim starting_ws As Worksheet

Set starting_ws = ActiveSheet 'remember which worksheet is active in the beginning

For Each ws In ThisWorkbook.Worksheets



 ws.Activate
                Application.SendKeys "%XRV%O", True
                Application.Wait (Now + #12:00:01 AM#)
                ws.Cells(1, 1) = "Created by Yo Castle 7 "
                Application.Wait (Now + #12:00:01 AM#)

Next


starting_ws.Activate 'activate the worksheet that was originally active


End Sub

Respuesta1

Para ejecutar el marco solo en las hojas visibles, puede agregar unIFjusto después de iniciar el ciclo. Esto luego probará si elVisibleLa propiedad es verdadera; de lo contrario, pase al siguiente.

Entonces tu código se convierte en:

Sub CountSheets()

Dim ws As Worksheet

Dim starting_ws As Worksheet

Set starting_ws = ActiveSheet 'remember which worksheet is active in the beginning

For Each ws In ThisWorkbook.Worksheets

If ws.Visible = true Then

 ws.Activate
                Application.SendKeys "%XRV%O", True
                Application.Wait (Now + #12:00:01 AM#)
                ws.Cells(1, 1) = "Created by Yo Castle 7 "
                Application.Wait (Now + #12:00:01 AM#)
End If

Next


starting_ws.Activate 'activate the worksheet that was originally active


End Sub

información relacionada